Вы организуете свои иерархические данные, используя модель списка смежностей . Тот факт, что такие рекурсивные операции являются сложными, на самом деле является одним из основных недостатков этой модели.
Некоторые СУБД, такие как SQL Server 2005, Postgres 8.4 и Oracle 11g, поддерживают рекурсивные запросы с использованием общих табличных выражений с ключевым словом WITH
.
Что касается MySQL, вас может заинтересовать следующая статья, в которой описывается альтернативная модель (модель вложенного набора ), которая делает рекурсивные операции более легкими (возможными):
Кроме того, я также предлагаю проверить презентацию Билла Карвина , указанную в комментариях выше. Описанная модель таблицы замыканий является очень допустимой альтернативой вложенному набору.