|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
Доброго всем дня! Вопрос к профи. Есть дерево AL (section_id, data, parent_id). Чтобы вывести узел и 2 уровня его потомков делаю так Код: sql 1. 2. 3. 4. 5. 6.
Уважаемые профи а как вывести всех потомков узла если уровень растет динамически? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 09:15 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
muraveyДоброго всем дня! Вопрос к профи. Есть дерево AL (section_id, data, parent_id). Чтобы вывести узел и 2 уровня его потомков делаю так Код: sql 1. 2. 3. 4. 5. 6.
Уважаемые профи а как вывести всех потомков узла если уровень растет динамически? динамически формировать секцию фром :) или переформулировать задачу. А как можно сделать структуру данных, дабы мы легко могли найти всех потомков. впринципе самому можно придумать, можно почитать nested sets ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 10:18 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
alex564657498765453, ... или прочитать фак по деревьям, пришпиленный тут вверху. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 10:24 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
alex564657498765453 можно почитать nested sets Уважаемый я же пишу, что нужно для дерева AL. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 10:30 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
Arhat109alex564657498765453, ... или прочитать фак по деревьям, пришпиленный тут вверху. :) Там нет конкретного решения, все сырое. Может кто уже делал. Наведите хотя бы на алгоритм выборки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 10:31 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
muravey, там полно конкретных решений. Собственно только они и есть, даже некоторые с анализом. Сомневаюсь, что вы сможете найти конктретику именно под вашу структуру таблиц, имен и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 10:46 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
muraveyalex564657498765453 можно почитать nested sets Уважаемый я же пишу, что нужно для дерева AL. не все в первую очередь учат крутые буржуйские абривиатуры :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 11:58 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
Arhat109Сомневаюсь, что вы сможете найти конктретику именно под вашу структуру таблиц, имен и т.д.Ну почему же? Вот тут сможет... если жаба не задавит ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 12:14 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
про e alex564657498765453не все в первую очередь учат крутые буржуйские абривиатуры :)Гугол про "AL tree" ничего не знает. https://www.google.ru/search?q=AL tree Результаты: Alabama State Tree Auburn University trees poisoned by angry Alabama fan Banyan Tree Al Wadi Ras Al Khaimah 1 Al's Tree Service Так что либо аббревиатура не такая уж крутая, либо, напротив, настолько крутая и засекреченная, что за ТСом уже выехал пативэн, а тема будет безжалостно удалена - и хорошо, если только тема :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 12:20 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
tanglirпро e alex564657498765453не все в первую очередь учат крутые буржуйские абривиатуры :)Гугол про "AL tree" ничего не знает. https://www.google.ru/search?q=AL tree Результаты: Alabama State Tree Auburn University trees poisoned by angry Alabama fan Banyan Tree Al Wadi Ras Al Khaimah 1 Al's Tree Service Так что либо аббревиатура не такая уж крутая, либо, напротив, настолько крутая и засекреченная, что за ТСом уже выехал пативэн, а тема будет безжалостно удалена - и хорошо, если только тема :) вот и я про тоже. тоже гуглил и на википедии статьи по деревьям посмотрел. ЗЫ давно подмечено,чем больше знает человек по сути дела, тем меньше крутых абривиатур он знает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 13:00 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
Есть три типа организации данных дерева: Материализованный путь (Materialized Path) Код: sql 1. 2. 3. 4. 5.
Вложенное множество (Nested Set) Код: sql 1. 2. 3. 4. 5. 6. 7.
Список смежных вершин (Adjacency List) Код: sql 1. 2. 3. 4. 5.
Вот для типа смежных вершин и нужно решение. Странно что даже никто никуда не послал в нужном направлении. А на счет буржуйских абревиатур, дак и MySql буржуйская. Или я у вас по российскому СУБД спрашиваю. Странно что никто ничего незнает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 15:45 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
muraveyСписок смежных вершин"По-русски" это называется "родитель-потомок". Ни разу до вчерашнего дня не слышал, чтобы тут такое дерево назвали "списком смежных вершин". Как говорится, "о, сколько нам открытий чудных..." :) muraveyСтранно что никто ничего незнает.Странно, что кто-то уверен, будто форумчане обязаны переписывать примеры из фака под его структуру. Тем более, что задача совершенно стандартная, там и переписывать-то практически нечего - только заменить имена полей и таблиц... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 05:53 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
Совсем народ обленился, только названия таблиц надо было поменять Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 06:40 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
bochkovСовсем народ обленился,Не переживай, годика через два и ты обленишься :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2013, 06:40 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
bochkov, Спасибо за отклик. Вот мое решение, может кому пригодится. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 21:21 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
bochkovСовсем народ обленился, только названия таблиц надо было поменять Мне тоже нужен такой запрос. bochkov, а где тут названия таблиц? И что есть названия полей? П.С. мы(я) не обленились, просто чайники :) bochkov Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 00:10 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
bochkov, кстати, у меня есть задача - посложнее, по крайней мере - на мой взгляд: построение древовидной структуры по следующим правилам: партнерская программа, многоуровневая: любой член - родитель, и он же ребенок, за исключением самого первого. Член приглашает в структуру людей любое количество, но под ним могут записаться только 5 чел, остальные пишутся на уровень ниже - его детям: сначала 1-му - все 5, затем - 2-му и т.д. Как заполнился уровень из этих пяти, а тот же родитель все зазывает и зазывает, следующие пишутся в 3-й уровень - его внукам и т.д. Возможно ли построить один запрос для такого способа построения структуры или хотя бы не один, а ограниченное число запросов, а то сейчас у меня рекурсия и число запросов просто дикое :( При этом есть еще небольшая вариация: когда у родителя заполняется 3-й уровень, т.е. 125 детей - он имеет право записать себе в 1-й уровень - 6-го ребенка и строить ему все уровни, как и предыдущим. Заполнил 5 уровней - пишет себе 7-го и ему строит структуру и т.д. - максимум - 9. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 00:52 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
bochkov, а такой же (или процедурки), только в обратную сторону нет? т.е. по ИД вывести всю цепочку до рута есть такая, только ее доделать чтобы дополняла еще конечными элементами(без детей) по пути SET @child_id = 10; SELECT @child_id, @child_id := ( SELECT PARENT_ FROM table WHERE ID_ = @child_id LIMIT 1) FROM table WHERE @child_id IS NOT NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2014, 19:07 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
DmitryFix, то же самое, только Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 01:41 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
bochkovDmitryFix, то же самое, только Код: sql 1.
вот допустим сейчас возвращает от выделенной строки 76, 74, 73, 72 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 12:11 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
а еще бы добавить 75, 77, 78 т.е. конечные узлы у которых нет детей (они у меня в базе даже поле отдельное имеют IS_DIR = 0 конечный узел, IS_DIR = 1 разветление) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 12:16 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
эх, у меня получается очень громоздко ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2014, 02:34 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
Выложи дамп, что нибудь придумаю ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2014, 04:39 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
bochkov, Доработал до решения в одну строку: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2017, 19:18 |
|
Как вывести всех потомков узла дерева(AL) на MySQL если уровень растет динамически?
|
|||
---|---|---|---|
#18+
dalphbochkov, Доработал до решения в одну строку: Код: sql 1. 2. 3. 4. 5.
навскидку действительно работает ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2017, 12:09 |
|
|
start [/forum/topic.php?fid=47&msg=38286942&tid=1827853]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 149ms |
0 / 0 |