Está organizando sus datos jerárquicos usando el modelo de lista de adyacencia . El hecho de que tales operaciones recursivas sean difíciles es, de hecho, uno de los principales inconvenientes de este modelo.
Algunos DBMS, como SQL Server 2005, Postgres 8.4 y Oracle 11g, admiten consultas recursivas mediante expresiones de tabla comunes con el WITH
palabra clave.
En cuanto a MySQL, puede interesarle consultar el siguiente artículo que describe un modelo alternativo (el conjunto anidado modelo ), lo que facilita las operaciones recursivas (posible):
Además, también sugiero consultar la presentación de Bill Karwin señalado en los comentarios anteriores. El modelo de tabla de cierre descrito es una alternativa muy válida al conjunto anidado.