
WITH RECURSIVE CTE AS (
-- 기본 쿼리: 시작 조건 (가장 위에 있는 항목)
SELECT column1, column2
FROM table
WHERE 조건
UNION ALL
-- 재귀 쿼리: 자기 자신을 참조하여 다음 단계로 이동
SELECT column1, column2
FROM table(재귀 쿼리 테이블) JOIN CTE(기본 쿼리 테이블)
ON table.column = CTE.column
WHERE 조건
)
설명
WITH RECURSEIVE는 SQL에서 재귀적인 쿼리를 작성할 때 사용하는 문법.
일반적으로 계층 구조나 트리 구조를 처리할 때 유용하다.
1. 기본 쿼리 : 처음 시작할 데이터를 선택하는 부분 가장 위에 있는 레코드를 선택한다.
2. 재귀 쿼리 : 이전 쿼리 결과를 참조하여 반복적으로 데이터를 가져온다. UNION ALL을 이용하여 이전의 결과와 새로운 쿼리를 합친다.