같은 테이블 안의 데이터를 서로 연결해야 하는 경우가 있습니다.
대표적인 예로는 상사와 직원 관계를 들 수 있습니다.
아래는 employees 테이블의 예시입니다.
| employee_id | name | manager_id |
|---|---|---|
| 1 | Alice | NULL |
| 2 | Bob | 1 |
| 3 | Carol | 1 |
| 4 | David | 2 |
각 직원의 상사 이름을 함께 조회하려면,
같은 테이블을 두 번 불러 조인해야 합니다.
SELECT
e.employee_id
, e.name AS employee_name
, m.name AS manager_name
FROM employees e
LEFT JOIN employees m
ON e.manager_id = m.employee_id;
이처럼 같은 테이블을 두 번 불러 서로 조인하는 방식이 Self Join입니다.
✔️ Self Join은 같은 테이블 안에서 관계를 연결하거나 비교해야 할 때 사용하는 조인 방식입니다.
✔️ 직원–상사 관계처럼 구조적으로 연결된 데이터를 다룰 때 활용할 수 있습니다.