Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Плоское дерево в темпоральной базе
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть такая табличка: Код: plaintext 1. 2. 3. 4. 5. 6. Задача: берется какой-нибудь object_id и надо достать из базы всех его потомков и потомков его потомков и т.д. Глубина древа известна (depth). Потомок определяется по полю owner_id. Чтобы найти потомков object_id = 1 надо найти все записи, у которых owner_id = 1. И так далее. Пробовал генерить вот такой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Даже с одним join-ом я не получаю корень + одного потомка. Не понимаю почему, объясните, пожалуйста. Ну и как тут вообще надо по-правильному запрос писать? Исходные данные: id---owner_id---depth 1 2 2 1 1 3 2 0 Т.е. у записи с object_id=1 есть один потомок, а у этого потомка есть еще один потомок, что видно по значению depth (путь до последнего потомка) и owner_id (ссылка на родителя) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2010, 09:00 |
|
||
|
Плоское дерево в темпоральной базе
|
|||
|---|---|---|---|
|
#18+
serega_sh, отвечу сам себе. Через join оно не должно работать. Я неправильно прочитал мануал. Как еще можно? Нашел статью, ссылка на которую опубликована на форуме: , но идея с текстовым path мне не очень понравилась. Во-первых как-то это не производительно с лайком работать, во-вторых дерево у меня темпоральное и потомки могут быть либо равны либо "старше" (значение updated_at) своего родителя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2010, 09:30 |
|
||
|
|

start [/forum/topic.php?fid=54&msg=36655429&tid=2009334]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
134ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 481ms |

| 0 / 0 |
