这是我桌子的架构:
Create Table OBJECT_TREE
( PARENT_ID int,
CHILD_ID int )
该表中的示例数据如下所示:
PARENT_ID CHILD_ID
---------------------
1 2
2 3
2 4
2 5
3 6
3 7
4 8
4 9
1 ________2________3_______6
| |
| |______7
|
|
|______4_______8
| |
| |______9
|
|
|______5
SQL Server存储过程应该在给定节点的层次结构中“向下”返回所有对象(节点2的所有向下层次结构对象都是3,4,5,6,7,8,9)
请帮助找到树的叶节点。
答案 0 :(得分:5)
幸运的是,这是不需要递归的少数情况之一:
SELECT DISTINCT child_id
FROM object_tree ot
WHERE NOT EXISTS (
SELECT *
FROM object_tree nx
WHERE nx.parent_id = ot.child_id
);
答案 1 :(得分:0)
此查询将返回没有chield节点的所有叶节点。
SELECT ot.child_id
FROM object_tree ot
left join object_tree nx on nx.parent_id = ot.child_id
where nx. parent_id is null