【发布时间】:2015-01-30 12:46:52
【问题描述】:
我有一张如下表:
身份证 |孩子ID |姓名 ---------------------- 1 空名称1 2 1 名称2 3 2 姓名3 4 3 名称4 5 4 姓名5 6 5 姓名6 7 6 姓名7 8 7 姓名8 9 8 姓名9 10 9 名称10 11 3 名称11现在我想要一个查询,它可以为每个至少有一个孩子的记录获取所有可能的孩子,并返回一个像这样的 DataSet:
身份证 |家长 ID |姓名 |父母 ID ----------------------------------------- 1 NULL 名称1 11,10,9,8,7,6,5,4,3,2 2 1 名称2 11,10,9,8,7,6,5,4,3 3 2 名称3 11,10,9,8,7,6,5,4 4 3 名称4 10,9,8,7,6,5 5 4 名称5 10,9,8,7,6 6 5 姓名6 10,9,8,7 7 6 姓名7 10,9,8 8 7 姓名8 10,9 9 8 姓名9 10【问题讨论】:
-
使用递归 CTE。 stackoverflow.com/questions/19914472/…
-
我之前回答stackoverflow.com/questions/26030796/…987654322@的另一个例子
-
在原始表中,ID = 1 的父 ID 为空。在结果集中,ID = 1 的父 ID 为 11、10、9、8、7、6、5、4、3、2。这没有意义。
-
@Nightmaresux 抱歉,我编辑了问题,我的意思是结果表中的 childID 而不是 parentID
-
@GiorgosBetsos 抱歉我编辑了这个问题,我的意思是结果表中的 childIDs 而不是 parentIDs
标签: sql sql-server sql-server-2008 tsql