2014-12-11 6 views
-2

Я имею эту таблицу design.I хотите, чтобы все его дети в указанном ParentID, но у меня возникают проблемы в том, чтобы отфильтровать и получить все его donwline детейИзвлечение всех детей с указанным ParentID

CREATE TABLE `treetbl` (
    `id` INT(11) NOT NULL AUTO_INCREMENT, 
    `parentid` INT(11) NOT NULL DEFAULT '0', 
    `lft` INT(11) NOT NULL DEFAULT '0', 
    `rgt` INT(11) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`) 
) 

treetbl

id  parentid  lft  rgt 

1  1    1  1 

2  5    6  7 

3  7    8  9 

Вот мой запрос к Получение Полное дерево

SELECT node.parentid,node.lft,node.rgt 
FROM treetbl AS node, 
     treetbl AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 

ORDER BY node.lft; 

, но я смущаюсь, как отфильтровать исходный пример 5, чтобы получить всех своих детей вниз.

Заранее спасибо.

ответ

-1

Если вы правильно поняли, что хотите выбрать только записи, содержащие parentid = 5. Я прав?

Если это так и вы говорите, что это работает для вас со всеми записями:

SELECT node.parentid,node.lft,node.rgt FROM treetbl AS node, treetbl AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt ORDER BY node.lft; 

, то почему бы не просто добавить parentid = 5 с помощью AND заявления к нему? Как это:

SELECT node.parentid,node.lft,node.rgt FROM treetbl AS node, treetbl AS parent 
WHERE parentid = 5 AND node.lft BETWEEN parent.lft AND parent.rgt 
ORDER BY node.lft; 

Конечно, вы можете изменить это жестко закодированы 5 некоторой переменной $parentID PHP.

+0

он будет показывать только 5, 6, 7 8 и 9 не 8 и 9 являются дети из 5 – ashTon

+1

Да, это будет. Поскольку вы хотели показать только те элементы, которые имеют «parentid = 5», не так ли? Если нет, пожалуйста, разверните свой вопрос, чтобы я мог лучше понять его. – PolGraphic

-1

может быть, это то, что вы ищете

SELECT * FROM (SELECT node.parentid,node.lft,node.rgt 
FROM treetbl AS node, 
    treetbl AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 

ORDER BY node.lft)A Where A.parentid>=5 ; 

дайте мне знать, если я ошибаюсь

Смежные вопросы