【发布时间】:2011-10-15 21:52:38
【问题描述】:
如何在 SQL Server 中进行递归自联接? 我有一张这样的桌子:
表ID |父母ID 1 |空值 2 | 1 3 | 1 4 | 3 5 |空值 6 | 4 7 | 6我想根据给定的TableID 获得以下结果以获取与TableID 相关的所有ParentsID,假设我想获取TableID = 6 的所有父母:
我被困在这个问题上,我不知道如何在 SQL Query 中获得结果...... 希望能告诉我获取之前数据的SQL Query
【问题讨论】:
-
标准 SQL 不支持递归查询。有一些扩展,例如 oracle 的“先验连接”,但它们是扩展和非标准的。这类事情的常用方法是在循环中执行一系列查询。
-
@MarcB 但他标记了 sql-server :-) 所以它是 tsql。
-
也许
HierarchyID数据类型会使任务更容易,自 SQL Server 2008 起可用。
标签: sql-server recursive-query self-join