Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
Есть таблица: Код: plaintext Код: plaintext 1. 2. 3. 4. 1 2 3 4 5 Вопрос такой. Необходимо получить список элементов дерева, находящихся ниже заданной ветки. Пишу функцию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Должно получится так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Но почему-то функция не хочет уходить в рекурсию и выдает Код: plaintext 1. 2. 3. 4. 5. 6. В чем ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 09:39 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
Ну в смысле create table AAA (ID integer, PARENT integer); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 09:41 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
coolmihaНо почему-то функция не хочет уходить в рекурсию и выдает Код: plaintext 1. 2. 3. 4. 5. 6. В чем ошибка?ошибка в том, что перформ не возвращает данные в _вашу_ последовательность RETURN-ов т.ч. вам надо ~ Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 10:35 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
попробуйте connectby из contrib/tablefunc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 11:14 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
Окончательный вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. Всем спасибо. Решение можно внести в дискурс) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 14:50 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
coolmihaОкончательный вариант Всем спасибо. Решение можно внести в дискурс) в 8.4 добавят CTE, там можно будет по-другому делать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2009, 07:53 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
coolmiha, как убрать в выводе последнюю запятую и добавить в вывод parent_id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 11:10 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
fobster, вы нашли решение прошлогодней давности используйте специальный тип данных дерево + расширение для работы с деревьями деревья с учетом индексов получите быстрое решение по нахождению любых элементов дерева ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 11:35 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
Legushka, спасибо за ответ :) все-таки интересует решение в рамках подобной задачи, когда дерево организовано через id, parent_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 11:59 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
fobster, покажите пример исходных данных и результата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 16:18 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
Код: 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. SharuPoNemnogu, как в данном запросе вывести не только всех детей, но и родителя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2016, 12:38 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
fobsterкогда дерево организовано через id, parent_id у мну на рабочей бд аналогично, но классификатор обновлялся не так часто, я через вьюху загнал в формат ltree-) но у нас и задача была такой, что надо было в одном запросе показать например все листья из группы А, но при этом одновременно выделить отдельно А.А12.А2 и все что в нее входит в отдельную группу товаров. + в эту эе новую группу добавить еще и Q.Q01... Лучшее способа чем описать все через ltxtquery не нашел) компактные запросы со сложной логикой. (если таблица изначально так организована, то можно использовать GIN GIST индексы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2016, 14:06 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2016, 14:19 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
SharuPoNemnogu, От корня Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Тема раскрыта здесь http://shop.oreilly.com/product/9780596008949.do ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2016, 16:38 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
d3a, а мне то оно зачем? я повторил пример выше более легким способом, а там суть в том, чтобы от любого элемента построить дерево, а не от корня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2016, 19:02 |
|
||
|
Деревья в Postgres
|
|||
|---|---|---|---|
|
#18+
SharuPoNemnogu, Звиняйте, кнопочкой помахнулся - хотел просто в тред запостить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:05 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39350907&tid=1996824]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 169ms |

| 0 / 0 |
