Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Всем привет.
Есть запрос (рабочий)
SELECT
PCP.`id_product` , PPL.`name` ,
GROUP_CONCAT(DISTINCT iF(PPA.`id_product_attribute`,PAL.`name`,null) ORDER BY PPA.`id_product_attribute` ASC) AS 'размеры',
PFP.`id_feature_value` as feat8
FROM `ps_category_product` AS PCP
LEFT JOIN `ps_product_lang` AS PPL ON (PCP.`id_product` = PPL.`id_product`)
LEFT JOIN `ps_feature_product` AS PFP ON (PCP.`id_product` = PFP.`id_product`)
LEFT JOIN `ps_feature_value_lang` AS PFVL ON (PFP.`id_feature_value` = PFVL.`id_feature_value`)
LEFT JOIN `ps_product_attribute` AS PPA ON (PCP.`id_product` = PPA.`id_product`)
LEFT JOIN `ps_product_attribute_combination` AS PPAC ON (PPAC.`id_product_attribute` = PPA.`id_product_attribute`)
LEFT JOIN `ps_attribute_lang` AS PAL ON (PAL.`id_attribute` = PPAC.`id_attribute`)
WHERE PCP.`id_category` = 399
GROUP BY PCP.`id_product`
HAVING feat8 = 34
Суть этого запроса, вывести определенные товары, пускай кольца на палец и их размеры (16, 17 ...).
Для того чтобы отобразить данные строкой
GROUP_CONCAT(DISTINCT iF(PPA.`id_product_attribute`,PAL.`name`,null) ORDER BY PPA.`id_product_attribute` ASC) AS 'размеры'
надо сджойнить 3 таблицы
LEFT JOIN `ps_product_attribute` AS PPA ON (PCP.`id_product` = PPA.`id_product`)
LEFT JOIN `ps_product_attribute_combination` AS PPAC ON (PPAC.`id_product_attribute` = PPA.`id_product_attribute`)
LEFT JOIN `ps_attribute_lang` AS PAL ON (PAL.`id_attribute` = PPAC.`id_attribute`)
Для этого ручками переклацал все таблицы и по их названиям нашел нужные мне поля.
Вопрос: нет ли какой команды, которая по имени поля в таблице, например: поле id_product в таблице ps_product_attribute выдаст всю цепочку взаимосвязанных таблиц и полей в них ?
Неактивен
Смотрите FOREIGN KEY
Неактивен
а можно както предметнее намекнуть? пусть даже схематично, а то я в документации не разобрался. Спасибо
Неактивен
Неактивен
Открыть таблицу там будут строки вида
Отредактированно klow (24.01.2017 11:22:37)
Неактивен
Страниц: 1