Может быть, не то, что вы хотели, но замечательно, когда речь идет о деревьях .Вам нужно будет перестроить вашу таблицу и иметь некоторый код для вывода html, но у вас будет только один запрос.Это может стоить усилий в долгосрочной перспективе.
т.е.. Если у вас есть это меню
# Menu hierarchy:
- Home
- Product
|- Tv
|- Radio
- About us
В БД оно будет выглядеть так:
+----+----------+-----------+-----+-----+
| id | menu | parent_id | lft | rgt |
+----+----------+-----------+-----+-----+
| 1 | Home | null | 1 | 2 |
+----+----------+-----------+-----+-----+
| 2 | Product | null | 3 | 8 |
+----+----------+-----------+-----+-----+
| 3 | Tv | 2 | 4 | 5 |
+----+----------+-----------+-----+-----+
| 4 | Radio | 2 | 6 | 7 |
+----+----------+-----------+-----+-----+
| 5 | About us | null | 9 | 10 |
+----+----------+-----------+-----+-----+
Данные могут быть получены с использованием аналогичного запроса
$select = "SELECT * FROM table_name WHERE lft BETWEEN 3 AND 8;"
Чтобы вывести определенное меню:
- Product
|- Tv
|- Radio
Я знаю, что это не совсем тот ответ, который вы искали, но, к вашему сведению, существуют другие способы использования данных иерархического дерева.*
Удачи.