У меня есть таблица SQL Server 2005 следующим образом:
parent child
1 a
2 a
2 b
3 b
3 c
4 c
5 d
6 d
7 d
8 e
9 e
9 f
10 f
У каждого родителя может быть один или несколько детей, у каждого ребенка также может быть один или несколько родителей.
Как я могу найти (или группу) всех родителей, которые связаны?
В вышеприведенном случае я хочу сгруппировать:
parent 1, 2, 3, 4 into group 1
parent 5, 6, 7 into group 2
parent 8, 9, 10 into group 3
Результат запроса будет выглядеть следующим образом: (не имеет значения, какой родитель использует группу, если он принадлежит одному из родительских элементов в группе, мин. Или макс. Идентификаторы)
parent child parent_group
1 a 1
2 a 1
2 b 1
3 b 1
3 c 1
4 c 1
5 d 5
6 d 5
7 d 5
8 e 8
9 e 8
9 f 8
10 f 8
Это похоже на те стандартные боссы - подчиненные рекурсивные вопросы SQL, за исключением того, что у подчиненного может быть более 1 босса.
Можно ли использовать SQL для генерации результата, как указано выше? Если так, то как?
Ценю любую помощь.