Показать сообщение отдельно

  #10  
Старый 07.02.2009, 20:14
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
По умолчанию

Как уже отмечали, средств для рекурсивных запросов в мускуле нет, но выбрать два уровня записей из дерева одним обращением к БД выбрать можно. Запрос будет выглядеть так:

Код:
SELECT *
FROM `comments`
WHERE `parent_id` = NULL
OR `parent_id` IN (
    SELECT `id` FROM `comments` WHERE `parent_id` = NULL
)
Подзапросом мы вибираем идентификаторы тех элементов, которые не имеют родительских элементов, а основным запросом мы вибираем все те же корневые элементы и все их элементы-потомки.

Проблему с несколькими обращениями к БД мы решили, теперь остается только придумать как обрабатывать полученные данные.
 
Ответить с цитированием