Decision
ON vs WHERE 판단법
조건이 “붙일 상대 행”을 제한하는지, “최종 결과 행”을 제한하는지 먼저 구분합니다.
ON: 붙일 행 제한
WHERE: 최종 행 제한
NULL 행 보존 주의
ON에 두기
오른쪽 행의 매칭 조건
배송 완료 주문만 붙이기, 특정 기간 주문만 붙이기처럼 상대 테이블 범위를 좁힐 때 사용합니다.
WHERE에 두기
보존 후 최종 필터
활성 회원만 보기처럼 보존 테이블 자체를 거르는 조건에 사용합니다.
질문
답
위치
주문이 없어도 회원을 보여야 하나?
예
오른쪽 조건은 ON
최종 목록에서 비활성 회원을 빼야 하나?
예
users 조건은 WHERE
오른쪽 NULL 행을 남겨야 하나?
예
WHERE 오른쪽 조건 주의