我的查询看起来像这样:GROUP_CONCAT创建一个下拉
SELECT p.product_id,
Group_concat(DISTINCT Concat(optlan.option_label, ',', ovl.value)
SEPARATOR ';'
) AS
options_01,
Concat(Group_concat(DISTINCT optlan.option_label), ';',
Group_concat(DISTINCT ovl.value)) AS
options_02,
Concat_ws(';', optlan.option_label, Group_concat(DISTINCT ovl.value)) AS
options_03
FROM products p
JOIN category c
ON p.category_id = c.category_id
LEFT JOIN options_categories opcat
ON opcat.category_id = c.category_id
LEFT JOIN options opt
ON opt.option_id = opcat.option_id
LEFT JOIN options_lang optlan
ON optlan.option_id = opt.option_id
AND optlan.lang_id = 'NL'
LEFT JOIN option_values ov
ON ov.option_id = opt.option_id
LEFT JOIN option_values_lang ovl
ON ovl.value_id = ov.value_id
AND ovl.lang_id = 'NL'
WHERE p.product_id = '25'
GROUP BY p.product_id;
options_01结果:
option a,40;option a,50;option b,60;option b,70
options_2结果:
option a,option b;40,50,60,70
和options_03:
option b;60,70
我想创建这样的:
option a;40,50|option b;60,70
或者我需要用PHP到查询创建它?希望可以有人帮帮我。
犯罪嫌疑人,更好地使在PHP-side.Yes,思维处理输出数据,当然有可能组要如何使用MySQL(我不Ť知道你的桌子的结构),但它看起来可怕并且难以理解。 – voodoo417
@ voodoo417:其含义是我将标签与其值相结合。因此,例如,标签(option_a,option_b等)和表值(50,60,70,80 ...)中的前两个来自option_a,所以结果必须是:(option_a; 50 ,60 | option_b; 70,80 | etcetera .......) –