Requête SQL pour la relation parent-enfant
J'ai de la table db avec la relation de parent-enfant:
NodeId NodeName ParentId
------------------------------
1 Node1 0
2 Node2 0
3 Node3 1
4 Node4 1
5 Node5 3
6 Node6 5
7 Node7 2
Ici parentId = 0 signifie qu'il est un niveau de la racine au nœud. Maintenant, je veux écrire une Requête SQL qui sera de retour de l'enfant à tous les niveaux d'une catégorie parent.
par exemple pour nodeId = 1, il doit retourner 3, 4, 5, 6.
Je suis à l'aide de MS SQL Server 2005
source d'informationauteur Programmer | 2008-10-16
Vous devez vous connecter pour publier un commentaire.
Vous devriez regarder dans l'aide de l'Ensemble Imbriqué de Modèle pour les relations parent-enfant au sein d'une base de données SQL. C'est beaucoup plus agréable que d'essayer de stocker le parentID d'enregistrements dans la table comme ceci, et le fait requêtes comme cela beaucoup plus facile.
Et juste pour s'assurer qu'il fonctionne si ses parents de lui-même (sinon, il répète jusqu'à ce que ça casse):