계층형 쿼리

Bloooooooooooooog..·2023년 5월 10일
0

계층형 쿼리

오라클에서 지원하는 매우 강력한 기능 중 하나로. 상위 타입과 하위 타입간의 관계를 계층식으로 표현할 수 있게 하는 질의어(SELECT)

START WITH

상위 타입(최상위 부모)으로 사용될 행 지정

CONNECT BY

상위 타입과 하위 타입의 관계를 규정 PRIOR 연산자와 사용해서
현재 행 이전에 상위 타입 또는 하위 타입 규정

1) 부모 -> 자식 계층

CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼

2) 자식 -> 부모 계층

CONNECT BY PRIOR 부모 컬럼 = 자식 계층

ORDER SIBLINGS BY : 계층 구조 정렬

계층형 쿼리가 적용된 SELECT 해석 순서

5 : SELECT
1 : FROM
4 : WHERE
2 : START WITH
3 : CONNECT BY
6 : ORDER SIBLINGS BY

WHERE 절이 계층형 쿼리보다 해석 순서가 늦기 때문에 먼저 조건을 반영하고 싶은 경우 FROM절 서브쿼리 (인라인뷰) 이용

예시

SELECT LEVEL, REPLY_NO , REPLY_CONTENT, PARENT_REPLY_NO  FROM REPLY_S rs START WITH PARENT_REPLY_NO IS NULL 
CONNECT BY PRIOR REPLY_NO = PARENT_REPLY_NO 
ORDER SIBLINGS BY REPLY_NO;

이와 같이 계층형 구성으로 각 계층(LEVEL)을 확인 가능하다.

댓글과 대댓글 구현 등에 사용하면 좋다.

profile
공부와 일상

0개의 댓글