我有一个表格,我在同一列中添加父级和子级值但是将其与parentid
区分为父级值不会parentid
它只会自动递增id
并且子值将同时具有自动递增的ID和parentid 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
答案 0 :(得分:1)
你需要
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
答案 1 :(得分:0)
要使GROUP_CONCAT正常工作,您的查询中必须有GROUP BY。
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat