Задать вопрос
@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'
  • Вопрос задан
  • 333 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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