SQL 기본 및 활용
🗄️ SQLSQL 기본★★★★☆자주

셀프 조인 — 같은 표를 두 번 부르기

한 표 안에서 행끼리 이어야 할 때, 같은 표에 서로 다른 별칭을 붙여 두 표처럼 조인한다.

셀프 조인별칭자기 참조OUTER 조인

왜 그런지까지

사원과 그 사원의 관리자가 같은 emp 표에 들어 있는 것이 전형적인 경우다. e.mgr 와 m.empno 를 견주면 사원 옆에 관리자 이름을 붙일 수 있다.

별칭을 반드시 서로 다르게 주어야 하며, 별칭 없이 쓰면 어느 쪽 열인지 알 수 없어 오류가 난다. 관리자가 없는 사람(mgr 가 NULL)까지 보이려면 INNER 가 아니라 OUTER 조인이어야 한다는 점이 함정이다.

돌려 보기

사원 옆에 관리자 이름을 붙인다. INNER 로 바꾸면 대표 한 명이 사라지는 것도 확인해 보자.

헷갈리는 것

셀프 조인에서 INNER 와 OUTER

INNER 로 하면 상위가 없는 최상위 행이 사라지고, LEFT OUTER 로 해야 그 행까지 남는다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다