|
with recursion
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть рекурсивный запрос такого плана: Код: PL/pgSQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Не нравится такой момент - для idChild мы всегда находим все уровни до конца и уже потом ищем подходящего родителя по нужным нам условиям. Можно ли как-то переписать запрос так, чтобы он останавливался и не разматывал дерево дальше, если найдет нужного родителя? С помощью цикла while я такое поведение описала так: Создаю временную таблицу tmp и задаю переменную v_inLevel = 1. Код: PL/pgSQL 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2024, 11:44 |
|
with recursion
|
|||
---|---|---|---|
#18+
Nicolle [игнорируется] почему нерабочий запрос? что такое "l"? Зачем union и distinct? Код: SQL 1. 2. 3.
https://onecompiler.com/postgresql/42vxnwxp5 Код: 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.
Данные нужно предоставлять как в примере выше, если чего-то не хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2024, 13:15 |
|
with recursion
|
|||
---|---|---|---|
#18+
Извиняюсь, поправила код, distinct можно убрать: Код: PL/pgSQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: PL/pgSQL 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
Вчера, 08:09 |
|
with recursion
|
|||
---|---|---|---|
#18+
Nicolle [игнорируется] Код 1.
Здесь нужно проверять условие на первой итерации для этого случая. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
Вчера, 12:31 |
|
|
Start [/forum/topic.php?fid=53&msg=40138936&tid=2187056]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
36ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
101ms |
get tp. blocked users: |
0ms |
others: | 260ms |
total: | 412ms |
0 / 0 |