提问者:小点点

从子列中获取列作为一列中的列表[重复]


我有一个名为forms的表和一个名为categories的表。它们通过category_form作为pivot具有多对多的关系。透视表具有form_idcategory_id

所以每个表单可以有很多类别,每个类别可以附加到很多表单上。

我需要以某种方式汇总这些数据。我需要的是一个逗号分隔的类别ID的列表在一列中为每个表单。

像这样:

FORMS
id  | name | categories 
1   | f1   | 1,4,7
2   | f2   | 1
3   | f3   | 1,6,8,9

做这件事的有效方法是什么?


共1个答案

匿名用户

试试看:

SELECT f.id, f.name, GROUP_CONCAT(cf.category_id) AS categories
FROM forms f
INNER JOIN category_form cf ON f.id = cf.form_id
GROUP BY f.id, f.name
ORDER BY f.id;