Self-Join 이해하기

송용진·2025년 7월 4일

SQL

목록 보기
4/4

Self-Join 개념

Self-Join이란?

•	자기 자신을 조인하는 JOIN
•	같은 테이블의 행(레코드) 간의 관계를 비교하거나 연결할 때 사용
•	주로 부모-자식 관계, 동료 관계, 상하 관계를 표현할 때 사용

즉, 같은 테이블을 두 번 불러와서 별칭(alias)을 붙여 JOIN하는 방식

문법

SELECT ...
FROM table_name A
JOIN table_name B ON A.some_column = B.some_column
•	A, B는 같은 테이블의 다른 역할
•	서로 다른 의미의 행을 비교하기 위해 alias(별칭) 을 붙이는 것이 핵심

예제: 직원 테이블에서 상사와 부하 연결하기

CREATE TABLE employees (
    id INT,
    name VARCHAR(50),
    manager_id INT
);

id name manager_id
1 CEO NULL
2 A 1
3 B 1
4 C 2
5 D 2
6 E 3

Self-Join 쿼리: 직원과 그 직원의 상사 이름 함께 출력

SELECT 
    e.name AS employee_name,
    m.name AS manager_name
FROM employees e
LEFT JOIN employees m
ON e.manager_id = m.id;

결과

employee_name manager_name
CEO NULL
A CEO
B CEO
C A
D A
E B

Self-Join은 왜 중요할까?

•	RECURSIVE CTE 내부에서도 결국 자기 자신과 JOIN하는 구조이므로

Self-Join을 이해하는 것이 Recursive 구조 이해의 기초가 됨

profile
개발자

0개의 댓글