@Ellik

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

Добрый вечер!
Имеется следующий запрос:

SELECT
prod.name,
prod.price,
cat.name,
atr.nameAttribute,
val.attributeValue
FROM products prod
INNER JOIN categories cat ON prod.idCategory = cat.idCategory
INNER JOIN productAttribute atr ON cat.idCategory = atr.idCategory
INNER JOIN attributeValue val ON cat.idCategory = val.idCategory

После выполнения выводиться декартово произведение строк. Т.е. строки дублируются. Как вывести строки без дублирования?
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
FROM products prod
Это понятно, основная таблица.
INNER JOIN categories cat ON prod.idCategory = cat.idCategory
Это тоже понятно, присоединяется к товару название категории.
INNER JOIN productAttribute atr ON cat.idCategory = atr.idCategory
И здесь ясно, присоединяем список атрибутов для этой категории.
INNER JOIN attributeValue val ON cat.idCategory = val.idCategory
А вот здесь непонятно, зачем для товара брать все значения атрибутов его категории? Нужно присоединять только значение уже присоединённого атрибута для данного товара. idCategory в таблице attributeValue вообще быть не должно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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