Мне нужно создать SQL-Query, который использует рекурсивный CTE для извлечения записей из TableA. (Tree-структура). Я передаю ему «лист» и хочу узнать путь назад к корню.TSQL foreach запись присоединиться к 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 сейчас, что я беру каждую запись из TableB и использовать tableB.SOME_ID для выражения КТР и создания вставки в TableC Еогеасп запись КТР генерирует плюс некоторые поля из TableB
(cte_recursive.CHILD_ID, tableB.SomeValue, tableB.SomeOtherValue)
Так что мой вопрос здесь, как я прохожу tableB.SOME_ID к КТР выраж ession?
Так TableA я получил что-то вроде этого:
ID, sub_id
1, 2
2, 3
2, 4
2, 5
5, 6
7, 8
8, 9
Если я прохожу его sub_id = 5, КТР возвращает мне записи # 1, # 2, # 3, # 4, # 5 в sub_id = 5 дитя ребенка ребенка ... от ID = 1
Просто 'JOIN' TableB в обоих' SELECT'statements. – Alexander
Я не могу, поскольку в части UNION нет записи TableB для parent.ID или parent.Sub_ID. Поскольку cte создает n записей для 1 tableA записи. Ill expand мой вступительный пост – CSharpie