@dieneri

Как вывести строки sql которые не имеют аналогичного поля во второй таблице (left join)?

Сопоставляю две таблицы в sql.
Всё работает, но сопоставляются только те записи, которые имеются во второй таблице.
Как вывести те записи, для которых нет сопоставления, а также дубли?
Потому что в каталоге в магазине числится больше позиций, чем в бд.

SELECT * FROM production as t1
LEFT JOIN production_favorite as t2 ON t1.id = t2.product_id
WHERE t1.brand_id = 145 and t2.name = 'opisanie'
  • Вопрос задан
  • 297 просмотров
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
отсутствующие во второй таблице
left join t2...
where t2.f is null

с дублями нужны подробности
Ответ написан
Комментировать
@MaximaXXl
SELECT * FROM production as t1
LEFT JOIN production_favorite as t2 ON t1.id = t2.product_id
WHERE t1.brand_id = 145 and t2.name = 'opisanie'

Это не соответствует написанному Вами словами
Похоже Вы хотели чтото такое:
SELECT * FROM production as t1
LEFT JOIN production_favorite as t2 ON (t1.id = t2.product_id and t2.name = 'opisanie')
WHERE t1.brand_id = 145
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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