0
자체를 참조하여 계층 구조를 나타내는 테이블이 있습니다.Postgres에서 빵 부스러기 얻기
create table nodes (
id integer primary key,
parent_id integer references nodes (id),
name varchar(255)
);
특정 노드가 주어 졌을 때, 나는 모든 부모를 순서대로 빵 부스러기로 발견하고 싶습니다. 나는 결과가있을 것으로 예상 것 id=5
에서 시작하고 싶었다면
insert into nodes (id,parent_id,name) values
(1,null,'Root'),
(2,1,'Left'),
(3,1,'Right'),
(4,2,'LeftLeft'),
(5,2,'LeftRight'),
(6,5,'LeftRightLeft');
: 예를 들어,이 데이터를 주어진 깊이 열이있는 경우 난 상관 없어
id | depth | name
-- | ----- | ----
1 | 0 | 'Root'
2 | 1 | 'Left'
5 | 2 | 'LeftRight'
,하지만 난 명확성을 위해 각 깊이에 대해 하나의 결과 만 있어야하며 결과는 깊이 순서로 표시되어야 함을 나타냅니다. 오름차순인지 내림차순인지 상관하지 않습니다.
(1)Root \ (2)Left \ (5)LeftRight
둘 다 레이블을 지정해도 상관 없습니까? "n"이 있습니까? 나는 sql이 암시 적으로 n의 이전 정의를 음영하지 않는 한 n.id가 모호 할 것이라고 생각한다. –
테이블 별칭은 쿼리 간의 UNION ALL 경계를 넘지 않습니다. 'A UNION B'에서'A'와'B' 질의는 그들 자신의 네임 스페이스를 가지고 있습니다. –