我需要创建一个使用递归 CTE 从 TableA 中获取记录的 SQL 查询。(树结构)。我把“叶子”递给他,想知道回到根的路。
这适用于 @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
)
我现在需要实现的是,我从 TableB 中获取每条记录,并将 tableB.SOME_ID 用于 CTE 表达式,并为 CTE 生成的每个记录以及 TableB 中的一些字段创建一个插入到 TableC 中
(cte_recursive.CHILD_ID,tableB.SomeValue,tableB.SomeOtherValue)
所以我的问题是,如何将 tableB.SOME_ID 传递给 cte 表达式?
所以在TableA中我得到了这样的东西:
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 的孩子的孩子的孩子...