1. 테이블 데이터
id=시퀀스, parent_id=부모키, name=자신의 이름, parent_name=부모의 이름, depth=단계
ID | PARENT_ID | NAME | PARENT_NAME | DEPTH |
3 | 0 | root1 | null | 1 |
4 | 0 | root2 | null | 1 |
5 | 3 | root1-1 | root1 | 2 |
6 | 3 | root1-2 | root1 | 2 |
7 | 3 | root1-3 | root1 | 2 |
8 | 3 | root1-4 | root1 | 2 |
9 | 8 | root1-4-1 | root1-4 | 3 |
10 | 4 | root2-1 | root2 | 2 |
11 | 4 | root2-2 | root2 | 2 |
2. 계층형 쿼리
SELECT ID, PARENT_ID, NAME, PARENT_NAME, TYPE
FROM SITE_LIST
START WITH PARENT_ID = 0 /* 부모의 시작 조건 */
CONNECT BY PRIOR ID = PARENT_ID /* 자신의 키와 부모키를 비교 */
ORDER SIBLINGS BY PARENT_ID ASC, ID ASC; /* 정렬 (일반적인 ORDER BY 가 아닌 계층내에서 정렬 할 수 있는 ORDER SIBLINGS BY) */
3. 계층형 쿼리 후 정렬 결과
ID | PARENT_ID | NAME | PARENT_NAME | DEPTH |
3 | 0 | root1 | null | 1 |
5 | 3 | root1-1 | root1 | 2 |
6 | 3 | root1-2 | root1 | 2 |
7 | 3 | root1-3 | root1 | 2 |
8 | 3 | root1-4 | root1 | 2 |
9 | 8 | root1-4-1 | root1-4 | 3 |
4 | 0 | root2 | null | 1 |
10 | 4 | root2-1 | root2 | 2 |
11 | 4 | root2-2 | root2 | 2 |
댓글