查找表格中的所有最后一个孩子

时间:2017-11-08 15:10:15

标签: mysql hierarchical-data

idTask  idParent  Description
1                 Root  
2          1      Parent-1
3          1      Parent-2
4          1      Parent-3
5          1      Parent-4
6          4      Child31   
7          4      Child32   
8          5      Child41   
9          8      Child411
10         8      Child412

我需要一个查询来检索记录,如

输出

2          1      Parent-1
3          1      Parent-2
6          4      Child31   
7          4      Child32   
9          8      Child411
10         8      Child412

2 个答案:

答案 0 :(得分:2)

如果你的意思是树中的叶子,你可以通过自我加入表来查找没有子节点的行并查找NULL记录:

SELECT parent.Id 
FROM task parent LEFT OUTER JOIN task child on child.idParent= parent.IdTask
WHERE child.IdTask IS NULL

答案 1 :(得分:1)

select * from task t1 where not exists (select 1 from task where idParent = t1.idTask)