SQL JOIN 방법: USING, ON, WHERE의 성능 및 구문 차이
SQL은 테이블 조인을 위한 USING, ON, WHERE 등 여러 가지 옵션을 제공합니다. 이러한 옵션의 기능은 유사하지만 성능 및 구문 의미에 대한 오해가 발생할 수 있습니다. 이 문서에서는 이러한 연결 방법 간의 차이점을 살펴봅니다.
실적
통념과는 달리 세 가지 연결 방법 간에는 큰 성능 차이가 없습니다. 세 가지 방법 모두 동일한 최적화된 쿼리 계획을 생성합니다.
구문 및 의미
ANSI 구문:
사용 구문:
“join the where”(암시적 INNER JOIN)의 모호함
WHERE 절을 사용하여 조인 조건을 지정하면 특히 외부 조인 유형에서 모호해질 수 있습니다. 문제는 FROM이 WHERE보다 먼저 평가되는 SQL Server의 논리적 쿼리 처리 순서에서 발생합니다. "어디에 참여"하면 실수로 데카르트 곱이 생성되거나 예상치 못한 결과가 발생할 수 있습니다.
문법적 모호함:
다음 두 쿼리는 WHERE 절의 암시적 내부 조인과 FROM 절의 명시적 외부 조인을 혼합할 때 발생할 수 있는 구문 모호성을 보여줍니다.
<code class="language-sql">FROM T1, T2, T3 WHERE T1.ID = T2.ID AND T1.foo = 'bar' AND T2.fish = 42 FROM T1 INNER JOIN T2 ON T1.ID = T2.ID INNER JOIN T3 ON T1.ID = T3.ID WHERE T1.foo = 'bar' AND T2.fish = 42</code>
모호함은 어떤 연결이 외부 연결이고 어떤 연결이 내부 연결인지 명확하게 결정할 수 없기 때문에 발생합니다.
추천:
명확성, 일관성 및 최신 SQL 표준과의 호환성을 위해 다음을 권장합니다.
위 내용은 SQL 조인: USING, ON, WHERE 간의 성능 및 구문 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!