azuron
@azuron
Laravel разработчик

Mysql — как удалить строки из таблицы которых нет во второй таблице?

Добрый день! Подскажите, пожалуйста, как удалить строки из table2, которых нет в table1?
Пример таблицы:

ТАБЛИЦА №1 - (обновленные данные)
id | id_goods | name | full_name | groups
--------------------------------------------------------
1 | 111 | товар1 | товар11 | продукты

3 | 333 | товар3 | товар33 | продукты

ТАБЛИЦА №2 - (рабочая таблица)
id | id_goods | name | full_name | groups
--------------------------------------------------------
1 | 111 | товар1 | товар11 | продукты
2 | 222 | товар2 | товар22 | продукты
3 | 333 | товар3 | товар33 | продукты

Вопрос в том, что после парсинга файла, обновленные данные отправляются во временную таблицу №1. Их необходимо сравнить с данными в рабочей таблице и удалить товары, которых нет во временной таблице. Подскажите, пожалуйста, как реализовать этот запрос?
  • Вопрос задан
  • 3010 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
delete from table2 using table2 left join table1 on (как их сравнивать) where table1.id is null

?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
disc
@disc
веб-разработчик
Используйте LEFT JOIN.
Для начала я бы посоветовал Вам построить SELECT запрос чтобы убедится, что выбираются действительно те данные, которые вы хотите удалить. И после этого заменить SELECT на DELETE.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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