왼쪽 조인 쿼리 최적화: 먼저 필터링할까요, 아니면 마지막으로 필터링할까요?
데이터 분석 및 처리 시 왼쪽 테이블의 필수 행만 조인 결과에 포함되도록 왼쪽 조인을 수행하기 전에 테이블의 데이터를 필터링해야 하는 경우가 많습니다.
문제 설명
"Customer"와 "Entry"라는 두 개의 테이블이 있다고 가정합니다. "Customer" 열을 기반으로 왼쪽 조인을 수행하지만 "Entry Table"에 'D'와 같은 "Category" 열만 포함하려고 합니다. ' 입장. 조인 후 WHERE
절을 사용하여 필터를 적용하면 왼쪽 테이블의 일치하는 행이 제외됩니다.
솔루션
조인하기 전에 왼쪽 테이블을 필터링하려면 필터 조건을 왼쪽 조인 문의 ON
절로 이동하세요. 이렇게 하면 왼쪽 테이블 행이 오른쪽 테이블과 조인되기 전에 필터링됩니다.
<code class="language-sql">SELECT c.Customer, c.State, e.Entry FROM Customer c LEFT JOIN Entry e ON c.Customer = e.Customer AND e.Category = 'D'</code>
설명
이 쿼리에서 ON
절에는 "범주" 열을 기준으로 "항목 테이블"을 필터링하는 추가 조건 e.Category = 'D'
이 포함되어 있습니다. 고객 테이블의 행은 지정된 범주 값과 일치하는 고객 테이블에 고객이 있는 경우에만 조인에 포함됩니다.
장점
참여하기 전에 왼쪽 테이블을 필터링하면 다음이 보장됩니다.
결론
이 기술을 사용하면 왼쪽 조인을 수행하기 전에 테이블의 데이터를 효과적으로 필터링할 수 있습니다. 이렇게 하면 연결 결과가 분석 또는 데이터 처리 작업에 필요한 데이터 요구 사항을 정확하게 반영할 수 있습니다.
위 내용은 왼쪽 조인 이전 또는 이후에 필터링해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!