WHERE는 TRUE인 1행만 최종 결과에 남깁니다.
조인 자체는 왼쪽 사용자를 모두 보존합니다. 하지만 오른쪽 테이블 값으로
WHERE
를 검사하면
NULL = 'DELIVERED'
가
TRUE가 아니므로
NULL 확장 행이 제거됩니다.
WHERE o.status = 'DELIVERED'
핵심 규칙:
WHERE 절은 TRUE만 통과시킵니다.
NULL
비교 결과인
UNKNOWN
은 남지 않습니다.
order_id = 1, status = 'DELIVERED'
order_id = NULL, status = NULL
order_id = NULL, status = NULL
ON
절에 두고, NULL 확장 행까지 제거해도 되는 경우에만
WHERE
로 보냅니다.