MySQL no admite consultas recursivas, por lo que debe hacerlo de la manera más difícil:
- Seleccione las filas donde
ParentID = X
dondeX
es tu raíz. - Recopilar el
Id
valores de (1). - Repita (1) para cada
Id
de (2). - Siga recurriendo a mano hasta que encuentre todos los nodos hoja.
Si conoce una profundidad máxima, puede unir su tabla a sí misma (usando LEFT OUTER JOIN) hasta la máxima profundidad posible y luego limpiar los valores NULL.
También puede cambiar su representación de árbol a conjuntos anidados .