我需要创建一个使用递归CTE从TableA中提取记录的SQL查询。 (树结构)。我把他的“叶子”传给他,并想知道回到根部的方式。TSQL每个记录加入一个cte并插入
这个工程具有可变@SOME_ID
;WITH cte_recursive AS
(
SELECT ID, SUB_ID FROM tableA
WHERE SUB_ID = @SOME_ID
UNION ALL
SELECT parent.ID, parent.SUB_ID
FROM tableA parent
INNER JOIN cte_recursive child ON child.ID = parent.SUB_ID
)
我需要什么到现在为止acchieve,我抓住每一个记录表B从和 使用tableB.SOME_ID的CTE表达,并创建一个插入到表C的foreach记录CTE产生再加上从表B某些领域
(cte_recursive.CHILD_ID,tableB.SomeValue,tableB.SomeOtherValue)
所以在这里我的问题是,我该如何通过tableB.SOME_ID的CTE EXPR激情?
因此,在表A我是这样的:
ID,SUB_ID
1,2
2,3
2,4
2,5
5,6
7,8
8,9
如果我通过他SUB_ID = 5时,CTE返回我的记录#1,#2,#3,#4,#5 作为SUB_ID = 5是ID的......孩子的孩子的孩子= 1
只是'JOIN' tableB的两个'SELECT'statements。 – Alexander
我不能,因为在UNION部分,没有任何parent.ID或parent.Sub_ID的TableB条目。由于cte为1个tableA记录创建了n条记录。我扩大我的开幕帖子 – CSharpie