Decision

ON vs WHERE 판단법

조건이 “붙일 상대 행”을 제한하는지, “최종 결과 행”을 제한하는지 먼저 구분합니다.

ON: 붙일 행 제한
WHERE: 최종 행 제한
NULL 행 보존 주의
ON에 두기

오른쪽 행의 매칭 조건

배송 완료 주문만 붙이기, 특정 기간 주문만 붙이기처럼 상대 테이블 범위를 좁힐 때 사용합니다.

WHERE에 두기

보존 후 최종 필터

활성 회원만 보기처럼 보존 테이블 자체를 거르는 조건에 사용합니다.

질문
위치
주문이 없어도 회원을 보여야 하나?
오른쪽 조건은 ON
최종 목록에서 비활성 회원을 빼야 하나?
users 조건은 WHERE
오른쪽 NULL 행을 남겨야 하나?
WHERE 오른쪽 조건 주의