我有一张像这样的 table
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 的 child 将是 2,3 的 child 将是 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 查询来做到这一点?
最佳答案
您可以创建一个子查询,将其子查询的 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
关于MySQL |更新查询以填充子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18201621/