왼쪽 행을 모두 유지하며 일치하지 않는 관계를 NULL로 확인합니다.
LEFT JOIN은 왼쪽 테이블의 모든 행을 유지하고 오른쪽에 일치가 없으면 오른쪽 열을 NULL로 채웁니다. 주문이 없는 고객처럼 누락 관계를 찾는 데 유용합니다.
오른쪽 테이블 필터를 WHERE에 두면 NULL 행이 제거되어 사실상 INNER JOIN이 될 수 있으므로 ON과 WHERE의 의미를 구분합니다.
COUNT(*)는 왼쪽 행도 세므로 오른쪽 존재 수는 COUNT(right.id)로 계산합니다.
LEFT JOIN은 세 엔진 모두 지원하지만, RIGHT JOIN은 SQLite에서 비교적 최근 버전에서야 추가됐다는 점을 기억해 두면 오래된 환경에서 헷갈리지 않습니다.
WHERE o.status='paid'가 주문 없는 고객까지 제거하는지 확인하세요.
직접 바꿔보세요주문이 한 건도 없는 고객만 조회하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.