핵심 차이
OUTER JOIN은 조인에 실패한 행도 결과에 남기고, 없는 쪽은 NULL로 채웁니다.
조인 조건이 맞는 행은 INNER JOIN과 동일하게 연결됩니다. 차이는 매칭되지 않은 행을 버리느냐, 아니면 보존해서 관계 없음 자체를 드러내느냐입니다.
같은 입력 데이터에서 결과만 달라집니다
조인 키: user_id
회원 테이블
user_id
username
1
김철수
2
이영희
3
박민수
주문 테이블
order_id
user_id
status
101
1
DELIVERED
102
2
PAID
같은 조건으로 조인해도 불일치 행 처리 방식이 다릅니다
INNER JOIN
매칭된 행만 남습니다
회원 3번은 주문이 없으므로 결과에서 사라집니다. 즉, 교집합만 보입니다.
username | order_id
김철수    | 101
이영희    | 102
OUTER JOIN
보존 대상의 행은 끝까지 남고, 없는 쪽은 NULL입니다
주문이 없는 회원도 결과에 포함됩니다. 실무에서는 이렇게 누락된 관계를 함께 확인합니다.
username | order_id
김철수    | 101
이영희    | 102
박민수    | NULL
다음 단계: LEFT, RIGHT, FULL OUTER JOIN의 차이는 여기서 어느 쪽 테이블을 보존하느냐만 달라진 것입니다.