Oui, c'est possible en utilisant un modèle d'ensemble imbriqué. Il y a un livre de Joe Celko qui décrit mais si vous voulez entrer directement dedans, il y a un articles qui en parle. Les données rassemblées dont vous avez besoin peuvent être récupérées par une seule instruction de sélection comme celle-ci :
SELECT * FROM TableB where left > some_value1 and right < some_value2
Dans l'exemple ci-dessus, pour obtenir tous les nœuds enfants de "Portable Electronics", la requête sera :
SELECT * FROM Electronics WHERE `left` > 10 and `right` < 19
L'article décrit comment les colonnes de gauche et de droite doivent être initialisées.