我的数据存储在一个表中,并且表结构如下:
employee(id, parent_id, ename)
这样查看我的数据存储:
数字表示员工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吗?