最后一个父级的简单递归查询子级

问题描述 投票:0回答:1

我需要检索孩子父母的最后一个(或第一个)ID。

示例:

ID     PARENT_ID
----------------
1      NULL
2      1 
3      2

因此,如果我搜索id = 3的父ID,则结果为1。

我尝试了这个,但是它给了我相同的ID ...

with 
   tree(id)
as
(
   select id
   from myTable
   where id = 3
   union all
   select t.id 
   from myTable t
   inner join tree on tree.id = t.father_id
)
select *
from tree;

我已经在这里和一些网站上看到了示例;)

sql sql-server parent-child recursive-query
1个回答
2
投票
您在这里的命名有些不一致。但是无论如何,您的CTE也需要包含parent_id

喜欢这个:

with tree(id,parent_id) as ( select id, parent_id from myTable where id = 3 union all select t.id, t.parent_id from myTable t inner join tree on t.id = tree.parent_id ) select * from tree;

© www.soinside.com 2019 - 2024. All rights reserved.