@Horosh294

Как правильно составить определенный SQL запрос для базы сайта на DLE?

Всем привет, есть сайт на DLE. Там есть таблицы dle_comments и dle_post .
Нужен запрос или комбинация запросов, чтобы удалить те комментарии, для которых новость уже отсутствует (так произошло, потому что новости удалялись иногда не через админку а напрямую из БД).
Так вот нужно, чтобы из dle_comments бралось поле post_id , которое сравнивалось с таблицей dle_post с полем id . Если нашлись совпадения ,то оставляем без изменений, если нет, то удаляем всю строчку из таблицы dle_comments.
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Можно использовать WHERE NOT EXISTS как посоветовал Akina
DELETE FROM dle_comments 
WHERE NOT EXISTS (SELECT 1 FROM dle_post WHERE dle_post.id = dle_comments.post_id);


а можно LEFT JOIN
DELETE dle_comments.*
FROM dle_comments 
LEFT JOIN dle_post ON dle_post.id = dle_comments.post_id
WHERE  dle_post.id IS NULL;


Проверить SQL онлайн
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы