Задать вопрос
@Skysurfersky

Как правильно совместить DELETE и LEFT JOIN?

Есть таблица Товары (ARTICLE), таблица Товары_по_операциям (OP_ART) и таблица Операции (OPERATION).
Нужно в таблице Товары удалить позиции, по которым нет операций в таблице Операции (operation.id_op is null ).

DELETE
FROM article
LEFT JOIN op_art ON article.id_art = op_art.id_art
LEFT JOIN operation ON op_art.id_op = operation.id_op
WHERE operation.id_op is null

Подскажите в чем ошибка?
  • Вопрос задан
  • 199 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
Синтаксис Firebird в принципе не предусматривает многотабличного удаления. Никаких JOIN - это не MySQL. Нужно фильтровать записи - добро пожаловать в мир коррелированных подзапросов и [NOT] EXISTS.

Руководство по языку SQL для Firebird 2.5, страница 246.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы