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

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

Всем привет, есть сайт на DLE. Там есть таблицы dle_comments и dle_post .
Нужен запрос или комбинация запросов, чтобы удалить те комментарии, для которых новость уже отсутствует (так произошло, потому что новости удалялись иногда не через админку а напрямую из БД).
Так вот нужно, чтобы из dle_comments бралось поле post_id , которое сравнивалось с таблицей dle_post с полем id . Если нашлись совпадения ,то оставляем без изменений, если нет, то удаляем всю строчку из таблицы dle_comments.
  • Вопрос задан
  • 147 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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 онлайн
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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