我有一张表,我在同一列中添加父项和子项值,但用parentid区分它们,例如父项值将没有parentid,它将仅具有自动递增的id,子项值将具有自动递增的ID和父ID parentid等于父值的ID。

这是我的桌子

id    parentid     q_values
1       0          parentvalue
2       1          childvalue
3       1          childvalue
4       1          childvalue


谁能帮我解决逗号分隔列表形式的子值?

我已经尝试过了,但没有成功。

SELECT
     q_values,
     GROUP_CONCAT( CASE WHEN parentid = id THEN q_values END ) AS childvalue,
FROM table_name


结果应如下所示

id     q_values           childvalue
1    parentValue    childvalues, childvalues

最佳答案

你需要


自加入
添加GROUP BY子句,因为GROUP_CONCAT是聚合函数


这更接近您的解决方案

SELECT p.q_values as parentvalue,
     GROUP_CONCAT(c.q_values) AS childvalue,
FROM table_name AS p
JOIN table_name AS c
  ON p.id = c.parentid
WHERE p.parentid = 0
GROUP BY parentvalue
ORDER BY parentvalue

关于mysql - 我如何以逗号分隔列表的形式包含子值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19767377/

10-09 00:37