@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'
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 160 000 ₽
Blogman Санкт-Петербург
от 90 000 до 160 000 ₽
02 апр. 2020, в 21:27
600 руб./за проект
02 апр. 2020, в 21:15
3000 руб./за проект
02 апр. 2020, в 21:11
8500 руб./за проект