powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / top parent в celko дереве
3 сообщений из 3, страница 1 из 1
top parent в celko дереве
    #35356991
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впервые столкнулся с деревом такого вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create table objects (
object_id int,
left         int,
right        int,
level        int,
primary key (object_id)
);
Мне нужно извлечь из него данные виде ObjectID, ParentObjectID, TopParentObjectID

Почитал, что тут пишут, извлечение ObjectID, ParentObjectID сделал так:
Код: plaintext
1.
2.
3.
SELECT p1.object_id as ObjectID, p2.object_id as PID, p1.name as Name,p2.name as ParentName, 
FROM objects as p1, objects as p2
where p1.left >p2.left and p1.left<p2.right  and (p1.level - p2.level)= 1  

Не могу понять, как можно получить TopParentObjectID для каждой строки?
...
Рейтинг: 0 / 0
top parent в celko дереве
    #35357030
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заменить условие (p1.level - p2.level)=1 на p2.level=1
...
Рейтинг: 0 / 0
top parent в celko дереве
    #35357082
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
итого выйдет так:
Код: plaintext
1.
2.
3.
4.
SELECT p1.object_id as ObjectID, p2.object_id as PID, p3.object_id as TopPID, p1.name as Name,p2.name as ParentName, 
FROM objects as p1, objects as p2, objects as p3
where p1.left >p2.left and p1.left<p2.right  and (p1.level - p2.level)= 1  
and p2.left >p3.left and p2.left<p3.right  and p3.level= 1  
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / top parent в celko дереве
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]