Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
23.10.2024, 11:44
|
|||
---|---|---|---|
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, 13:15
|
|||
---|---|---|---|
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.
Данные нужно предоставлять как в примере выше, если чего-то не хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
Вчера, 08:09
|
|||
---|---|---|---|
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
Вчера, 12:31
|
|||
---|---|---|---|
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
Start [/forum/topic.php?fid=53&mobile=1&tid=2187056]: |
0ms |
get settings: |
15ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
127ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 523ms |
0 / 0 |