我有一张桌子。
chained_schedule :
chained_id parent_schedule_id next_schedule_id
1 71 72
2 72 73
3 74 75
当我输入parent_schedule_id=71
时,输出应该找到该特定记录和由其next_schedule_id
标识的记录,它再次链接到另一个记录,......等。
因此对于上述数据和查询,输出应如下所示:
chained_id parent_schedule_id next_schedule_id
1 71 72
2 72 73
我该怎么做?
答案 0 :(得分:1)
大多数数据库都支持某种形式的递归CTE。 ANSI语法是:
with recursive cte as (
select cs.*
from chained_schedule cs
where parent_schedule_id = 71
union all
select cs.*
from chained_schedule cs join
cte
on cte.next_schedule_id = cs.parent_schedule_id
)
select *
from cte;