작콩큰콩

[mssql] 재귀쿼리(부모 아래 자식 모두 찾기) 본문

작은 콩 개발자/SQL

[mssql] 재귀쿼리(부모 아래 자식 모두 찾기)

귤치치 2023. 7. 18. 08:55
재귀 쿼리 기본 모양
WITH 테이블명 AS
(
    <쿼리문1 : SELECT * FROM TABLE_A>
    UNION ALL
    <쿼리문2 : SELECT * FROM TABLE_A JOIN 테이블명>
)
SELECT * FROM 테이블명;

 

재귀 쿼리로 부모 아래 자식 모두 찾기
WITH AUTH_ALL AS( -- 관리부장 권한 아래 있는 모든 권한 (재귀)
    SELECT
        *
    FROM
        SYS_AUTH
    WHERE
        AUTH_CD = #{authCd} -- 부모의 조건
        AND DEL_YN = 'N'
    UNION ALL
    SELECT
        B.* -- 자식의 모든 것
    FROM
        AUTH_ALL A -- with 테이블
    INNER JOIN SYS_AUTH B -- 본 테이블
        ON B.AUTH_PARENT_SEQ = A.AUTH_SEQ -- 본 테이블의 부모 순번이 with 테이블에 순번과 같은 때
        AND B.DEL_YN = 'N'
)
SELECT * FROM AUTH_ALL
Comments