Как удалить из таблицы_2 все ID, которые отсутствуют в таблице_1?

Как можно удалить все ID из таблицы_2, которых нет в таблице_1, оставив только совпадающие ID?
  • 23 июля 2024 г. 12:43
Ответы на вопрос 2
Для этого можно воспользоваться оператором DELETE с использованием условия EXISTS и NOT EXISTS. Пример запроса:

DELETE FROM таблица_2
WHERE NOT EXISTS (SELECT * FROM таблица_1 WHERE таблица_1.ID = таблица_2.ID);

Этот запрос удалит все записи из таблицы_2, у которых ID отсутствует в таблице_1.

Если нужно оставить только совпадающие ID между таблицей_1 и таблицей_2, то можно воспользоваться запросом с использованием оператора INNER JOIN:

DELETE таблица_2
FROM таблица_2
LEFT JOIN таблица_1 ON таблица_2.ID = таблица_1.ID
WHERE таблица_1.ID IS NULL;

Этот запрос удалит из таблицы_2 все записи, у которых ID отсутствует в таблице_1, оставляя только совпадающие ID.
Элементарно: 
DELETE FROM table2
WHERE NOT EXISTS (SELECT id FROM table1 WHERE table2.id = table1.id);


https://sqlize.online/s/po
Похожие вопросы