Was ist der einfachste Weg, um einen rekursiven Self-Join in SQL Server durchzuführen? Ich habe einen Tisch wie diesen:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
5 YT NULL
6 IS 5
Und ich möchte in der Lage sein, die Datensätze nur in Bezug auf eine Hierarchie ab einer bestimmten Person abzurufen. Wenn ich also die Hierarchie von CJ mit PersonID = 1 anfordern würde, würde ich Folgendes erhalten:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
Und für EBs würde ich bekommen:
PersonID | Initials | ParentID
2 EB 1
4 SW 2
Ich bin ein bisschen festgefahren, kann mir nicht vorstellen, wie ich es machen soll, abgesehen von einer Antwort mit fester Tiefe, die auf einer Reihe von Joins basiert. Dies würde so tun, wie es passiert, weil wir nicht viele Level haben, aber ich würde es gerne richtig machen.
Vielen Dank! Chris.