У меня есть родительско-дочерняя (многие-многие) таблицы, которая содержит workgroup_id
и parent_id
(рабочая группа может иметь более одного родителя).Извлечение всех потомков Id в SQL Server
Мне нужно вставить в таблицу назначения все потомки каждого родителя (т. Е. Внуки, правнуки и т. Д.), Количество уровней неизвестно и может измениться. Например моя оригинальная таблица:
wpwpr_workgroup wpwpr_parent
4 3
5 3
6 3
7 3
8 3
9 3
10 3
11 10
12 10
13 10
14 3
15 3
16 3
17 16
18 16
19 16
20 3
21 20
22 20
23 20
24 16
25 16
26 16
27 28
28 3
30 3
31 3
32 3
33 3
34 3
мне нужно моей целевой таблицы, чтобы выглядеть следующим образом:
wpwpr_workgroup wpwpr_parent
10 3
11 3
12 3
16 3
17 3
18 3
11 10
12 10
17 16
18 16
Любые идеи, как этого добиться? Я предполагаю, что это потребует какой-то рекурсии, но я не совсем уверен, как идти об этом
Большое спасибо С уважением Цви
Привет Charlie Спасибо за быстрый ответ, я использую SQL сервер 2008R2, я новичок в поле любой шанс, что вы можете показать мне короткий пример кода? – Zvi
Выполнено - Рекурсивные CTE могут стать беспорядочными, если у вас есть круговые предки. Таким образом, ваш пробег может отличаться. –
Для кого-то нового для SQL Server это довольно сложная тема. Прочитайте здесь, чтобы получить низкое значение в CTE: http://msdn.microsoft.com/en-us/library/ms190766%28v=sql.105%29.aspx –