1
我需要获取父级的所有子节点吗?MySQL树层次结构查询?
我的表说如下
id
parent_id
,说数据是
id parent_id
1 -1
2 1
3 -1
4 2
5 4
我想查询将返回所有子为给定ID
例如,如果我通过1将返回2,4,5 5
我需要获取父级的所有子节点吗?MySQL树层次结构查询?
我的表说如下
id
parent_id
,说数据是
id parent_id
1 -1
2 1
3 -1
4 2
5 4
我想查询将返回所有子为给定ID
例如,如果我通过1将返回2,4,5 5
SET @input = 1;
SELECT GROUP_CONCAT(lvl SEPARATOR ',') children FROM (
SELECT @q := (SELECT GROUP_CONCAT(id SEPARATOR ',') FROM tbl
WHERE parent_id IN (@q)) AS lvl FROM tbl
JOIN
(SELECT @q := @input) tbl
WHERE parent_id IN (@q)) t;
这里是SQL Fiddle查询。
它是多层次还是只有一个层次? parent-> chield或者great-parent - > parent - > child? –
其多级 – Ninad
你不能用一个单一的查询(而不是在mysql中)。你将需要一个功能。在这里看到:http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/ –