【发布时间】:2011-08-07 19:43:31
【问题描述】:
我有一个带有自我引用 InReplyTo 的表,其中包含如下数据:
PostID InReplyTo Depth
------ --------- -----
1 null 0
2 1 1
3 1 1
4 2 2
5 3 2
6 4 3
7 1 1
8 5 3
9 2 2
我想编写一个查询,它将以线程形式返回此数据,以便 ID=2 的帖子及其所有后代将在 PostID=3 之前输出,以此类推以无限深度
PostID InReplyTo Depth
------ --------- -----
1 null 0
2 1 1
4 2 2
6 4 3
9 2 2
3 1 1
5 3 2
8 5 3
7 1 1
有没有简单的方法来实现这一点?我可以在这个阶段修改数据库结构,那么新的hierarchy 数据类型会是最简单的方法吗?或者可能是递归 CTE?
【问题讨论】:
标签: sql-server-2008