mysql记录中的concat字符串
我目前的问题是:mysql记录中的concat字符串,mysql,join,left-join,concat,Mysql,Join,Left Join,Concat,我目前的问题是: select p.id as product_id, p.product_name, child.name as category_name, parent.name as parent_category_name from category child left join products p on FIND_IN_SET(child.id,p.category_ids) left join category parent on parent.id = child.pare
select
p.id as product_id,
p.product_name,
child.name as category_name,
parent.name as parent_category_name
from category child
left join products p on FIND_IN_SET(child.id,p.category_ids)
left join category parent on parent.id = child.parentid and parent.parentid = 0
where p.id = 7
目前的结果:-
product_Id | product_name | category_name | parent_category_name
7 ponds cream chemical
7 ponds medicine chemical
7 ponds powder Ayurvedic
product_Id | product_name | category_name | parent_category_name
7 ponds cream,medicine,powder chemical,chemical,Ayurvedic
现在我想按产品id分组,子/父类别应以逗号分隔的格式显示,如“奶油、药物、粉末”。所以这里记录的数量只有这样一个:-
预期成果:-
product_Id | product_name | category_name | parent_category_name
7 ponds cream chemical
7 ponds medicine chemical
7 ponds powder Ayurvedic
product_Id | product_name | category_name | parent_category_name
7 ponds cream,medicine,powder chemical,chemical,Ayurvedic
我不知道它在mysql查询中是否可能
如有任何建议或想法,将不胜感激
非常感谢。这将通过使用product\u id
和product\u name
进行分组。由于现有查询已经提取了必要的列和行,因此只需应用GROUP\u CONCAT()
并添加groupby
子句:
select
p.id as product_id,
p.product_name,
/* GROUP_CONCAT() */
GROUP_CONCAT(DISTINCT child.name) as category_name,
GROUP_CONCAT(DISTINCT parent.name) as parent_category_name
from category child
left join products p on FIND_IN_SET(child.id,p.category_ids)
left join category parent on parent.id = child.parentid and parent.parentid = 0
where p.id = 7
/* Add a GROUP BY clause */
GROUP BY
product_id,
product_name
为此,请使用GROUP\u CONCAT()
SELECT `product_Id`, GROUP_CONCAT(`category_name`)
FROM ...
GROUP BY `product_Id`
谢谢你,迈克尔:)我还想删除重复的值,比如在父类中有重复的化学成分,所以我只想列出“化学成分,阿育吠陀”?只要你不关心组中的顺序。。。为此,请参见-->