Você está organizando seus dados hierárquicos usando o modelo de lista de adjacência . O fato de que tais operações recursivas são difíceis é de fato uma grande desvantagem deste modelo.
Alguns SGBDs, como SQL Server 2005, Postgres 8.4 e Oracle 11g, suportam consultas recursivas usando expressões de tabela comuns com o
WITH
palavra-chave. Quanto ao MySQL, você pode estar interessado em verificar o seguinte artigo que descreve um modelo alternativo (o conjunto aninhado modelo ), o que torna as operações recursivas mais fáceis (possíveis):
Além disso, também sugiro conferir a apresentação de Bill Karwin apontado nos comentários acima. O modelo de tabela de fechamento descrito é uma alternativa muito válida para o conjunto aninhado.