У меня есть этот запрос, который возвращает элементы, которые необходимо удалить. Каким должен быть запрос для удаления этих элементов.Как удалить элементы из выбранного запроса?
SELECT p1.ID
FROM pidata_load p1
WHERE NOT EXISTS (SELECT p2.ID FROM pi_base p2 WHERE p1.pbid = p2.ID)
Безопасно это сделать?
DELETE FROM pidata_load
WHERE NOT EXISTS (SELECT p2.ID FROM pi_base p2 WHERE pbid = p2.ID)
GO
Update 1 - Вот мой запрос с псевдонимом на внешней таблице
DELETE p1 FROM pidata_load AS p1 WHERE NOT EXISTS (SELECT p2.ID FROM pi_base p2 WHERE p1.pbid = p2.ID)
GO
Если ваш первый запрос возвращает нужные данные, тогда да, ваш второй запрос будет «удалять» эти строки. Вероятно, вы все равно должны относиться к внешней таблице, хотя ... – sgeddes
Да, и это очень хорошая практика для проверки того, где перед выполнением удаления – Paparazzi
Как бы я мог использовать внешнюю таблицу? –