Задать вопрос
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 из всех трех таблиц в одно. Как это можно сделать?
  • Вопрос задан
  • 1314 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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