0

我有一个表格,以一种“父子”方式显示记录之间的关系。[ID] 字段标识一条记录,[PARENT] 字段通过 [ID] 标识该记录的父项。这为最顶层的父级创建了一个树结构。以下表为例:

[ID]     [PARENT]     [QUANTITY]
123      123          1
456      123          2
789      123          1
321      456          1
654      321          2
987      321          4

请注意 [ID] = '123' 的记录是如何成为此“树”中最顶层的记录。我需要查询此表以选择最顶层记录下的所有树节点(完整记录),例如树中 [ID] = '123' 下的所有记录(上述示例表中的所有记录)。目前我正在使用存储过程循环获取具有 [ID] = '123' 的记录的子项,然后记录子项等。我知道必须有一个更简单的查询(不是存储过程)可以动态适应在这种情况下,我只是不确定如果不循环以确保接收到所有孩子,这将如何工作。任何建议表示赞赏。

4

1 回答 1

1

使用“WITH”公用表表达式 - 强烈推荐在分层查询中使用。

http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx

于 2013-07-09T22:44:29.653 回答