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

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

Всем привет, есть сайт на DLE. Там есть таблицы dle_comments и dle_post .
Нужен запрос или комбинация запросов, чтобы удалить те комментарии, для которых новость уже отсутствует (так произошло, потому что новости удалялись иногда не через админку а напрямую из БД).
Так вот нужно, чтобы из dle_comments бралось поле post_id , которое сравнивалось с таблицей dle_post с полем id . Если нашлись совпадения ,то оставляем без изменений, если нет, то удаляем всю строчку из таблицы dle_comments.
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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 онлайн
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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