EgoRusMarch
@EgoRusMarch
C++ Developer

MySQL. Как объединить поля с одинаковыми данными из разных таблиц в запросе?

Есть БД computer_company, в ней 4 таблицы (которые можно увидеть на картинке).
76b70c24e9084c228b8f3eb322fd60fa.pngЗадание такое:
"Найдите номера моделей и цены всех продуктов (любого типа) выпущенных производителем ASUS".

Вот что у меня получилось:
SELECT product.model, pc.price, laptop.price, printer.price
FROM product
INNER JOIN pc ON product.model = pc.model
INNER JOIN laptop ON product.model = laptop.model
INNER JOIN printer ON product.model = printer.model
WHERE product.maker LIKE "ASUS";

Выводит Empty set, что не удивительно
Мне нужно объединить поля price из всех трех таблиц в одно. Как это можно сделать?
  • Вопрос задан
  • 1260 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
В принципе вы уже все сделали. Empty set по всей видимости означает, что запрос вернул пустой набор. Если вас смущает, что поля называются одинаково, то есть ключевое слово as:
pc.price as pcprice, laptop.price as lapprice, printer.price as printprice.

Запрос возвращает пустой набор скорее всего из-за INNER JOIN, т.к. при его использовании требуется что бы во всех трех таблицах одновременно были данные соответствующие каждой строке из таблицы указанной во from, что в вашем случае, видимо, не так.
Используйте OUTTER JOIN он же LEFT JOIN.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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