Mysql Query JOIN Query - PullRequest
       4

Mysql Query JOIN Query

0 голосов
/ 25 мая 2011

У меня есть три таблицы.Таблица A имеет имя опции (т.е. Цвет, Размер).Таблица B имеет имя значения параметра (т.е. синий, красный, черный и т. Д.).Таблица C устанавливает взаимосвязь путем помещения идентификатора имени параметра и идентификатора значения имени параметра в строку.

В моем запросе должны отображаться имена значений и параметров, а не номер идентификатора.Я могу сделать A и B по одному и получить список имен значений и опций, но так как значения и опции связаны, я хочу комбинированный список.Например.

Цвет - Синий цвет - Красный Размер - Большой размер - Маленький

Поэтому мой вопрос заключается в том, как объединить эти два запроса, чтобы получить объединенный результат, как указано выше.

SELECT products_options.products_options_name FROM products_options
LEFT JOIN products_options_values_to_products_options ON products_options_values_to_products_options.products_options_id=products_options.products_options_id

SELECT products_options_values.products_options_values_name FROM products_options_values
LEFT JOIN products_options_values_to_products_options ON products_options_values_to_products_options.products_options_values_id=products_options_values.products_options_values_id

1 Ответ

1 голос
/ 25 мая 2011

Вам нужны два объединения, которые будут выглядеть следующим образом:

select product_options.product_id,
       option_names.name_id,
       option_names.name,
       option_values.value_id,
       option_values.name
from product_options
join option_names using (option_id)
join option_values using (option_id)
where product_options.product_id = :product_id

Он не объединит их вместе для немедленной вставки в таблицу вариантов, но это лучшее, что вы сделаете в MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...