Checklist
OUTER JOIN 흔한 실수
결과가 예상보다 적거나 많을 때는 대부분 조건 위치, COUNT, NULL 검사 컬럼에서 문제가 납니다.
결과 손실
오판 위험
가독성
WHERE 오른쪽 조건
보존 행 제거
오른쪽 NULL 행을 탈락시켜 LEFT JOIN이 INNER JOIN처럼 보입니다.
COUNT(*)
0건이 1건으로
NULL 보존 행까지 세기 때문에 주문 없는 회원도 1이 됩니다.
nullable IS NULL
Anti-Join 오판
원래 NULL인 값과 매칭 실패 NULL을 구분하지 못합니다.
ON 누락
카테시안 폭증
암묵적 조인에서 조건을 빠뜨리면 행 수가 곱으로 늘어납니다.
NATURAL JOIN
스키마 변화 취약
같은 이름 컬럼이 추가되면 결과가 조용히 바뀝니다.
RIGHT JOIN 연쇄
읽기 어려움
기준 테이블을 왼쪽에 두는 LEFT JOIN 흐름이 보통 더 명확합니다.