我有一张像
这样的表格ID | ParentID |Children| Name | Address
----------------------------------------
1 | Null | | Xyz | Home
2 | 1 | | ABC | Home
3 | 2 | | DEF | Home
4 | 3 | | GHI | Home
5 | 3 | | GHI | Home
6 | 1 | | GHI | Home
我需要向孩子们填写查询,这些是直接的孩子。例如,1为1的子项为2,3为3的子项为4,5
所以查询后的表应该看起来像
ID | ParentID |Children| Name | Address
----------------------------------------
1 | Null | 2,6 | Xyz | Home
2 | 1 | 3 | ABC | Home
3 | 2 | 4,5 | DEF | Home
4 | 3 | Null | GHI | Home
5 | 3 | Null | GHI | Home
6 | 1 | Null | GHI | Home
我知道我可以将group_concat函数与更新查询一起使用但不能获得确切的查询。如何使用MySQL查询执行此操作?
答案 0 :(得分:0)
您可以创建一个子查询,为子项连接ID
并将其与表本身连接。
UPDATE tableName a
INNER JOIN
(
SELECT a.ID, GROUP_CONCAT(b.ID) Children
FROM tableName a
INNER JOIN tableName b
ON a.ID = b.ParentID
GROUP BY a.ID
) b ON a.ID = b.ID
SET a.Children = b.Children