> 데이터 베이스 > MySQL 튜토리얼 > SQL Server의 LEFT JOIN: ON 절과 WHERE 절 – 차이점은 무엇이며 언제 사용해야 합니까?

SQL Server의 LEFT JOIN: ON 절과 WHERE 절 – 차이점은 무엇이며 언제 사용해야 합니까?

Linda Hamilton
풀어 주다: 2024-12-26 19:12:13
원래의
918명이 탐색했습니다.

LEFT JOINs in SQL Server: ON vs. WHERE Clause – What's the Difference and When Should I Use Each?

조건: On 대 WHERE의 LEFT JOIN

SQL Server에서 LEFT JOIN은 연결하는 동안 한 테이블에서 데이터를 검색하는 데 자주 사용됩니다. 공통 열을 통해 다른 테이블로 이동합니다. 그러나 ON 및 WHERE 절에 조건을 사용하면 미묘한 차이가 발생하여 결과가 달라집니다.

JOIN ON 절과 WHERE 절

ON 절은 LEFT JOIN은 기본 테이블(조인된 테이블)의 어떤 행이 보조 테이블(조인 테이블)의 행과 일치할지 결정하는 조건을 지정합니다. 반면, WHERE 절은 조인이 수행된 후 결과 집합을 필터링합니다.

다음 두 쿼리를 고려하세요.

-- LEFT JOIN with Condition in ON Clause
SELECT t1.f2
FROM t1
LEFT JOIN t2
ON t1.f1 = t2.f1 AND cond2 AND t2.f3 > something;

-- LEFT JOIN with Condition in WHERE Clause
SELECT t1.f2
FROM t1
LEFT JOIN t2
ON t1.f1 = t2.f1 AND cond2
WHERE t2.f3 > something;
로그인 후 복사

결과

놀랍게도 이 둘은 쿼리는 동일한 결과를 생성하지 않습니다. 그 이유는 JOIN 절과 WHERE 절의 차이에 있습니다.

첫 번째 쿼리에서 ON 절의 조건은 t2의 어떤 행이 t1과 조인되는지를 제한합니다. 따라서 조건(t2.f3

두 번째 쿼리에서는 WHERE 절의 조건이 조인 후에 적용됩니다. 수행되었습니다. 결과적으로 t1의 모든 행은 조건 충족 여부에 관계없이 t2의 모든 행과 조인됩니다. 이후 WHERE 절은 조건을 충족하지 않는 행을 필터링하여 첫 번째 쿼리와 다른 결과 집합을 제공합니다.

결론

ON 및 WHERE 절은 LEFT JOIN으로 작업할 때 매우 중요합니다. ON 절은 조인에 대해 일치하는 행을 결정하는 반면, WHERE 절은 조인이 완료된 후 결과 집합을 필터링합니다. 이러한 이해를 통해 LEFT JOIN과 관련된 SQL 쿼리에서 원하는 결과를 얻을 수 있습니다.

위 내용은 SQL Server의 LEFT JOIN: ON 절과 WHERE 절 – 차이점은 무엇이며 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿