我正在从页面列表构建导航菜单。表格是这样的:
Table name: pages
id | type | parent | name
-------------------------------
1, 1, null, root1
2, 1, null, root2
3, 2, 2, home
4, 2, 3, child
5, 2, 4, sub_child
6, 3, 5, sub_sub_child
type:
1 = root page / site
2 = page
3 = ...
我的问题是,从任何页面,我都必须找到根页面。我有一个列父级,它引用父级页面,根页面除外。
我可以在表中有多个根页面,但每个页面只有一个父页面。
有人可以帮我写一个递归查询吗?
我正在尝试使用此查询,但它不起作用:
with recursive pages (id, parent) as
(
select pages.id,
pages.parent,
from pages
where pages.id = 4
union all
select pages.id,
pages.parent,
from pages
inner join pages p on p.id = pages.parent
)
select id
from pages;
谢谢