|
|
|
И снова DELETE, хотя впрочем и не он
|
|||
|---|---|---|---|
|
#18+
Прошу тысяч извинений, я в Фоксе человек новенький, поэтому вопрос у меня глупенький: Есть две взаимосвязанные таблицы. Связка по 4-м полям, из которых два - строковые, одно числовое и одно дата. Мне нужно из одной таблицы удалить те строчки, которых нет в другой. Будь это оракул, я бы написал: DELETE... WHERE NOT EXISTS (SELECT...) Но в 8-м Фоксе я не нашел экзиста. Как быть? неужто придется складывать поля и сравнивать их суммы? (ну типа f1+dtoc(f2)+...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 00:52 |
|
||
|
И снова DELETE, хотя впрочем и не он
|
|||
|---|---|---|---|
|
#18+
Он есть. См. Help: SELECT - SQL Command (Example 6) Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 06:44 |
|
||
|
И снова DELETE, хотя впрочем и не он
|
|||
|---|---|---|---|
|
#18+
Но с DELETE как-то не фурычит - syntax error пишет (может конструкция NOT EXISTS в Фоксе не существует?) В принципе, я свою мыслю по поводу суммы полей опробовал - работает, объемы данных мизерные (программа по убору "мусора" из таблиц перед погрузкой их в Оракул), так что на производительности сильно не сказывается (точнее не сказывается вааще:-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 00:03 |
|
||
|
И снова DELETE, хотя впрочем и не он
|
|||
|---|---|---|---|
|
#18+
Hi PyroTechnic! В VFP8 всё замечательно работает CREATE CURSOR c1 (n1 I, n2 C(10)) CREATE CURSOR c2 (n1 I, n2 C(10)) * наполняем чем угодно DELETE FROM c1 WHERE NOT EXISTS (SELECT * FROM c2 WHERE c2.n1 = c1.n1 AND c2.n2 = c1.n2) * отмечает на удаление все "отличающиеся" записи Так что ищи ошибку в другом месте. Хотя возможно что для твоей задачи подойдёт и более простой вариант - не удалять, а выбрать в новый курсор (можно и в таблицу) те записи которые нужны - в данном случае "одинаковые" - т.е. WHERE EXISTS (...) или даже просто результат INNER JOIN между этими 2-мя таблицами по всем 4 интересующим полям. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 03:00 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33776343&tid=1591463]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 545ms |

| 0 / 0 |
