我需要有关 sql 查询的帮助,我试图通过创建这个简单的示例来复制我的实际问题:
父母表:
id name parent_id
1 parent1 null
2 parent2 1
3 parent3 1
4 parent4 3
5 parent5 3
6 parent6 5
7 parent7 5
亲属表:
id name parent_id
1 relative1 2
2 relative2 3
3 relative3 4
4 relative4 5
5 relative5 7
父母表有一个父母名单,他们自己也有父母。亲属表有一个带有 parent_id 列的亲属列表。
我如何找到 parent3 的所有亲属,包括 parent3 的所有“后代”,即查询应该从亲属表中返回以下内容:
relative2(因为父 id 是 3)
relative3(因为父 id 为 4,其父 id 为 3)
relative4(因为父 id 为 5,其父 id 为 3)
relative5 (因为父 id 为 7,其父 id 为 5,其父 id 为 3)
我正在使用 SQL Server 2008。希望这是有道理的,任何帮助表示赞赏。