LEFT, RIGHT, FULL은 무엇을 남기느냐의 차이이고, ON과 WHERE는 그 결과를 유지하거나 다시 줄입니다.
| 종류 | 끝까지 남는 행 | 못 맞춘 쪽 | 언제 쓰나 |
|---|---|---|---|
| LEFT 왼쪽 기준 |
왼쪽 테이블 행을 모두 유지 | 오른쪽 컬럼이 NULL | 기준 목록은 모두 보여야 할 때 |
| RIGHT 오른쪽 기준 |
오른쪽 테이블 행을 모두 유지 | 왼쪽 컬럼이 NULL | 대개 순서를 바꿔 LEFT JOIN으로 표현 |
| FULL 양쪽 기준 |
양쪽 테이블 행을 모두 유지 | 없는 쪽만 NULL | 양쪽 누락분을 함께 확인할 때 |
보존 대상은 남기고, 반대편만 NULL로 둘 수 있습니다.
NULL 행이 제거되면 OUTER JOIN이 INNER JOIN처럼 보입니다.
무엇을 유지하는지와 NULL 위치가 가장 자연스럽게 보입니다.
LEFT JOIN ... WHERE right.pk IS NULL매칭되지 않은 왼쪽 행만 찾는 전형적인 Anti-Join 패턴입니다.