Mysql
 sql >> Base de données >  >> RDS >> Mysql

créer une requête en boucle arborescente

De la manière dont vous avez stocké l'arborescence maintenant, il n'est pas possible d'obtenir l'arborescence entière dans une requête SQL pure. Vous devez écrire une boucle dans un autre langage (C#, procédure stockée qui prend en charge les boucles, ...) pour récupérer l'arbre.

Ceci est un bel article décrivant comment travailler avec votre façon de stocker l'arbre (y compris la récupération de l'arbre et la suppression d'éléments de l'arbre).

Encore plus intéressant, cet article décrit également un moyen de stocker des arbres dans une table de base de données qui fait permettent de récupérer l'arbre entier en une seule requête. Cela s'appelle parcours d'arbre de précommande . Vous pouvez le consulter pour plus d'informations. J'ai trouvé une implémentation C# . Cela implique un peu plus de logique que la façon dont vous l'utilisez actuellement, mais est plus performant pour tous les arbres sauf les plus petits.