如何从树中的指定节点中查找所有叶节点

时间:2018-07-31 08:52:03

标签: sql sql-server tsql

我的数据存储在一个表中,并且表结构如下:

employee(id, parent_id, ename)

这样查看我的数据存储:

enter image description here

数字表示员工ID。所以我想做的是编写一个SQL以通过指定一个ID找出所有叶子点头,例如,如果我指定id = 1,则该SQL应该返回3,4,6

如果我在where子句中指定id = 2,那么它应该返回4,6

如果我指定某个ID为叶节点,则它将返回null。

我编写了如下所示的SQL,但返回的结果不正确:

select a.* from employee a left outer join employee b
on a.id = b.parent_id
where b.id is null and a.parent_id = 2

仅返回4。

有人可以给我一些建议或演示SQL吗?

0 个答案:

没有答案