MySQL non supporta le query ricorsive, quindi devi farlo nel modo più difficile:
- Seleziona le righe in cui
ParentID = X
doveX
è la tua radice. - Raccogli l'
Id
valori da (1). - Ripeti (1) per ogni
Id
da (2). - Continua a ripetere manualmente finché non trovi tutti i nodi foglia.
Se conosci una profondità massima, puoi unire la tua tabella a se stessa (usando LEFT OUTER JOIN) alla massima profondità possibile e quindi ripulire i NULL.
Puoi anche modificare la rappresentazione dell'albero in set nidificati .