Quelle est la manière la plus simple d'effectuer une auto-jointure récursive dans SQL Server? J'ai une table comme celle-ci:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
5 YT NULL
6 IS 5
Et je veux pouvoir obtenir les enregistrements uniquement liés à une hiérarchie commençant par une personne spécifique. Donc, si je demandais la hiérarchie de CJ par PersonID = 1, j'obtiendrais:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
Et pour les EB, j'aurais:
PersonID | Initials | ParentID
2 EB 1
4 SW 2
Je suis un peu coincé sur ce point, je ne peux pas penser comment le faire en dehors d'une réponse à profondeur fixe basée sur un tas de jointures. Cela ferait comme cela se passe parce que nous n'aurons pas beaucoup de niveaux, mais je voudrais le faire correctement.
Merci! Chris.