|
|
|
| Имеется справочник материалов с ID и ParentID который позволяет реализовать многоуровневое дерево. Нужно вывести в виде дерева только те материалы которые есть в наличии. Т.е. в данном случае у меня есть инфа о листьях, по которым мне надо построить всё дерево. Может кто видел ссылки как это делать? Что мне приходит в голову - использование временной таблицы, и на её основе обычное построение TreeView. Но здесь минус - база будет пухнуть очень быстро. | |
|
| |
|
|
|
| почитайте "о деревьях" в сети. там полно.
вариантов реализации вашей задачи м.б. несколько. | |
|
| |
|
|
|
| т.е. если детей нет, то эту ноду не выводить?
Запрос вернет только те узлы у которых есть дочерние (без самих дочерних узлов)
SELECT id, nameNode, idParent
FROM tblNodes
WHERE (id In (
SELECT idParent
FROM tblNodes
WHERE idParent<>0
GROUP BY tblNodes.idParent;
))
|
| |
|
| |
|
|
|
| >т.е. если детей нет, то эту ноду не выводить?
>
Совершенно верно. Небольшое уточнение. В этой задаче 2 таблицы участвуют - одна tblNodes где описана принадлежность материала какой-то группе, и вторая таблица с наличием этого материала. Т.е. связав эти две таблицы по id нужно построить дерево со всеми родителями, бабушками , прадедушками потомком которых этот id является. | |
|
| |
|
|
|
| ну вот... используйте запрос на подобии моего | |
|
| |
|
|
|
| Покрутил и так и сяк - не могу получить желаемого результата с пом запросов. Утро вечера мудренее, мож к понедельнику осенит. Кстати сёдня ж день компутерного гения - так что всех с праздником! | |
|
| |
|
|
|
| можно добавить узел "Not Parent" | |
|
| |