![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL-запрос на удаление записей [D6, MS Access 2000]
Nikolai_S © (2003-11-28 10:09:00)
Доброго времени суток!
У меня такой вопрос. Как составить SQL-запрос на удаление записей из заданной таблицы в базе данных MS Access 2000, если необходимо наложить на поля в других связанных таблицах через JOIN?
Пишу такой запрос (нужно удалить записи из табицы T1):
DELETE T1.*
FROM T1 LEFT JOIN T2 ON (T1.F1=T2.F1) AND (T1.F2=T2.F2)
WHERE T2.F1 IS NULL
Выдается ошибка "Невозможно удаление записей из указанных таблиц".
Вообще данный запрос должен удалять те записи из T1, у которых нет записей в T2 с совпадающими значениями в полях F1 и F2
asp (2003-11-28 10:25:00) [1]
Может,
DELETE FROM TABLE1 T1
WHERE NOT(EXISTS(SELECT T2.F1 FROM TABLE2 T2 WHERE T2.F1 = T1.F1 AND T2.F2 = T1.F2))
Johnmen (2003-11-28 10:23:00) [2]
Примерно так
DELETE FROM T1
WHERE EXIST (SELECT * FROM T1
LEFT JOIN T2 ON (T1.F1=T2.F1) AND (T1.F2=T2.F2)
WHERE T2.F1 IS NULL)
Alex_Bredin (2003-11-28 10:20:00) [3]
> Вообще данный запрос должен удалять те записи из T1, у которых
> нет записей в T2 с совпадающими значениями в полях F1 и
> F2
в лоб
DELETE FROM T1
WHERE (T1.F1 NOT IN(SELECT F1 FROM T2)) AND
(T1.F2 NOT IN(SELECT F2 FROM T2))
тока очень долго это..