【发布时间】:2014-07-06 09:01:05
【问题描述】:
我不知道这是否重复,但我无法在正确的方向上获得帮助,因此在这里询问。
我有以下表格架构,
菜单 {ID, ParentID, Name}
我想要做的是我想要一个存储过程,当我将 ID 作为参数传递时,我想要这个 ID 的所有父行,直到 ParentID 为 0。
例如,这是我的数据:
{1, 0, 主页}
{2, 1, 系统}
{3, 1, 数据}
{4、2、设置}
{5、2、访问}
所以,当我将 5 作为参数传递给存储过程时,我希望它返回 Access、System 和 Home。这里注意ParentID与ID没有紧密耦合,因此它可以包含0,其中0表示所有子节点的父节点。
它是一种子-父检索东西,我可以使用 while 循环来完成,但我希望它在一个查询中。
提前致谢!
【问题讨论】:
-
这是一个根/叶节点问题,本站有很多相关/重复问题。你都尝试了些什么?大多数解决方案倾向于使用递归 CTE - 在遵循任何示例之后,您的查询中的哪些内容不起作用?
标签: sql sql-server stored-procedures recursion parent-child