我有一个菜单系统,每个项目都有一个父项。所以结构是这样的
我想要做的是显示当前页面的“面包屑”样式链接列表。因此,如果用户在〜/ CVR.aspx上,我希望显示以下内容:
CVR控制 - CVR
所以我需要一个SQL查询,它递归地获取所有父菜单项的列表,直到行上的父项为空。)
有什么想法吗?
答案 0 :(得分:0)
对于SQL-Server,您可以使用简单的CTE执行此操作:
WITH MenuCTE AS
(
SELECT Id, parent, Text, Url
FROM menu
WHERE Id = 8
UNION ALL
SELECT p.Id, p.parent, p.Text, p.Url
FROM MenuCTE c
INNER JOIN menu p ON c.parent = p.id
)
SELECT *
FROM MenuCTE ;
例如,对于id = 8,这应该给你:
Id parent Text Url
8 6 CVR ~/cvr.aspx
6 NULL CVR Control ~/CVRDashboard.aspx