MySQL ne prend pas en charge les requêtes récursives, vous devez donc le faire à la dure :
- Sélectionnez les lignes où
ParentID = X
oùX
est votre racine. - Collectez l'
Id
valeurs de (1). - Répéter (1) pour chaque
Id
à partir de (2). - Continuez à répéter à la main jusqu'à ce que vous trouviez tous les nœuds feuilles.
Si vous connaissez une profondeur maximale, vous pouvez joindre votre table à elle-même (à l'aide de LEFT OUTER JOIN) jusqu'à la profondeur maximale possible, puis nettoyer les NULL.
Vous pouvez également modifier votre représentation arborescente en ensembles imbriqués .