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`

谢谢你,迈克尔:)我还想删除重复的值,比如在父类中有重复的化学成分,所以我只想列出“化学成分,阿育吠陀”?只要你不关心组中的顺序。。。为此,请参见-->