DELETE ... LEFT JOIN

Модераторы: kdv, CyberMax

Ответить
Ragazor
Сообщения: 6
Зарегистрирован: 25 ноя 2005, 11:06

DELETE ... LEFT JOIN

Сообщение Ragazor » 03 ноя 2008, 16:00

Как такое реализовать в FireBird?

DELETE a
FROM Table1 a
LEFT JOIN Table2 b ON a.ID = b.IDTable1
WHERE b.IDTable1 IS NULL

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: DELETE ... LEFT JOIN

Сообщение WildSery » 04 ноя 2008, 20:16

DELETE a - это удалить из таблицы Table1?
Тогда так:

Код: Выделить всё

delete from Table 1 a
  where not exists (select * from Table2 where IDTable1 = a.ID)

Ragazor
Сообщения: 6
Зарегистрирован: 25 ноя 2005, 11:06

Re: DELETE ... LEFT JOIN

Сообщение Ragazor » 05 ноя 2008, 12:19

этого я и боялся....

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: DELETE ... LEFT JOIN

Сообщение WildSery » 05 ноя 2008, 12:32

Ragazor писал(а):этого я и боялся....
Боялся, что MSSQL какую-то фигню делает вместо нормального SQL, определённого стандартом?
Мне это тоже никогда не нравилось.

Ответить