@Dark_Dante

Как вывести разницу между двумя запросами?

Здравствуйте.
Есть Три таблицы. Таблица А, таблица Б и таблица С
VpYBILf.png
А - товары, Б - бренды, С - поставщики
Поле a.id_бренд связано с Б.id
У таблицы C и таблицы Б у одинаковых производителей id одинаковые.
Мне надо выбрать только те товары, у которых есть бренд но нет поставщика.
То есть в данном случае, на картинке, только товар с ID=5 - 5 - МММ - Reebok
Как я понимаю, надо "вычесть" и таблицы Б таблицу С и выбрать только те товары, где id_бренд присутствует в "разнице" двух таблиц.
Только я что то не соображу, как это на SQL сделать
Подскажие пожалуйста=(
  • Вопрос задан
  • 859 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Но если имя поставщика совпадает с именем бренда, то id бренда == id поставщика

как-то это не правильно, но для Вашего случая можно сделать так
SELECT a.id, a.article, a.brand_id FROM a
INNER JOIN b on a.brand_id = b.id
LEFT JOIN c ON b.name = c.name
WHERE c.id IS NULL
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
почитайте про LEFT JOIN/ RIGHT JOIN.
в данном случае Вам надо сделать LEFT JOIN A и B, и к ним RIGHT JOIN c C
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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