OUTER JOIN은 보존할 쪽을 먼저 정한다
INNER JOIN이 양쪽에 모두 있는 행만 남긴다면, OUTER JOIN은 매칭에 실패한 행도 지정한 쪽에서 끝까지 보존합니다. 비어 있는 반대쪽 값은 NULL로 채워집니다.
기준 질문
결과에서 절대 사라지면 안 되는 행이 왼쪽인가, 오른쪽인가?
NULL이 생기는 곳
보존하지 않은 쪽에서 매칭을 못 찾으면 그쪽 컬럼이 NULL이 됩니다.
JOIN
왼쪽 A
매칭
오른쪽 B
읽는 법
LEFT
항상 보존
있으면 결합
없으면 NULL
회원은 모두 보고, 주문이 없으면 주문 컬럼만 비웁니다.
RIGHT
없으면 NULL
있으면 결합
항상 보존
오른쪽 테이블을 기준으로 끝까지 남깁니다.
FULL
양쪽 모두 보존
있으면 결합
양쪽 모두 보존
A에만 있는 행과 B에만 있는 행까지 모두 포함합니다.
LEFT
users 기준
주문이 없는 회원도 고객 목록에서 빠지지 않습니다.
RIGHT
orders 기준
실무에서는 보통 테이블 순서를 바꿔 LEFT JOIN으로 읽기 쉽게 씁니다.
FULL
차이까지 비교
양쪽 데이터의 누락, 불일치, 고아 행을 한 번에 찾을 때 유용합니다.