Каков самый простой способ сделать рекурсивное самосоединение в SQL Server? У меня есть таблица вроде этого:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
5 YT NULL
6 IS 5
И я хочу, чтобы записи были связаны только с иерархией, начиная с конкретного человека. Итак, если я запросил иерархию CJ с помощью PersonID = 1, я бы получил:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
И для EB я бы получил:
PersonID | Initials | ParentID
2 EB 1
4 SW 2
Я немного застрял в этом, не могу думать, как это сделать, кроме ответа с фиксированной глубиной, основанного на связке. Это будет делать так, как это происходит, потому что у нас не будет много уровней, но я хотел бы сделать это правильно.
Спасибо! Крис.