Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
дерево и SQl
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Возникла задача создать дерево. Все просто, но для примера упрощу, таблица Tabl, первичный ключ ID_T и вторичный ID_T_T который ссылается на первичный. Для корня ID_T_T равен null. Сейчас задача состоит в том, что я буду знать узел(значение ID_T) и мне нужно будет узнать путь к корю, то есть все ID_T до конечного где ID_T_T будет равен нулю. Можно конечно в цикле запросами пока не появится ID_T_T is null, но уж больно хочется рекурсии. Не посчастливилось мне с ней встретиться на SQL(например на с++ это очень просто). Пока предполагаю решение в виде процедуры которая будет вызывать саму себя. Но можно ли это сделать просто в виде запроса SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 11:14 |
|
||
|
дерево и SQl
|
|||
|---|---|---|---|
|
#18+
Андрей Васильевич, у меня вот так получилось: create table TEST_REC(id_t int, id_t_t int) insert into TEST_REC values (0,null),(1,null),(3,0),(4,1),(2,0),(6,3),(5,4),(7,6) WITH temp(level, path, id, id1) AS (SELECT 1, CAST('/' AS VARCHAR(10)) PATH, id_t, id_t_t FROM TEST_REC WHERE id_t_t IS NULL UNION ALL SELECT level + 1, path || id || '/', id_t, id_t_t FROM temp t, test_rec r WHERE t.id = r.id_t_t AND level < 100000) SELECT PATH FROM temp where id= <Ваше значение id_t> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 12:41 |
|
||
|
дерево и SQl
|
|||
|---|---|---|---|
|
#18+
kospos, Для производительности тут всё же начинать с <значение ID_T>, а не с корня: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 13:40 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=37741892&tid=1601881]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
56ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 172ms |

| 0 / 0 |
