SQL JOIN 방법 비교: USING, ON 및 WHERE
SQL은 JOIN 작업을 수행하기 위해 USING, ON 및 WHERE라는 세 가지 구문을 제공합니다. 이러한 구문은 유사해 보이지만 쿼리 가독성, 정확성 및 성능에 영향을 미칠 수 있습니다.
구문 사용
USING 구문은 USING
키워드와 두 테이블에 공통적인 열 이름을 사용하여 조인 열을 지정합니다.
<code class="language-sql">SELECT * FROM a JOIN b USING(ID);</code>
ON 구문
ON 구문은 ON
키워드와 조인된 열 간의 등식을 사용하여 조인 조건을 명시적으로 정의합니다.
<code class="language-sql">SELECT * FROM a JOIN b ON a.ID = b.ID;</code>
WHERE 구문
WHERE 구문은 WHERE 절에 조인 및 필터 조건을 결합합니다.
<code class="language-sql">SELECT * FROM a, b WHERE a.ID = b.ID;</code>
성능 고려 사항
이러한 구문 옵션 간에는 큰 성능 차이가 없습니다. 그러나 특히 OUTER JOIN과 관련된 쿼리의 경우 잠재적인 모호함으로 인해 WHERE 구문은 권장되지 않습니다.
의미적 차이
USING 구문은 명확성을 제공하고 잘못된 조인 조건이 발생할 위험을 줄이는 조인 열만 명시적으로 지정합니다.
ON 구문은 부등 연산자(=, !=, >) 또는 추가 조인 조건(예: AND/OR)을 포함하여 더 복잡한 조인 조건을 허용합니다.
WHERE 구문은 지정된 열의 동일성을 기준으로 INNER JOIN을 암시적으로 수행합니다. 이로 인해 예상치 못한 데카르트 곱이 발생하거나 외부 조인에 대한 잘못된 결과가 발생할 수 있습니다.
설명 예시
다음 쿼리를 고려해 보세요.
<code class="language-sql">FROM T1,T2,T3 WHERE T1.ID = T2.ID AND T1.foo = 'bar' AND T2.fish = 42</code>
T1.foo = 'bar'가 조인 조건인지 필터 조건인지는 확실하지 않습니다.
ON 구문을 사용하여 쿼리를 다시 작성하면 명확성을 얻을 수 있습니다.
<code class="language-sql">FROM T1 INNER JOIN T2 ON T1.ID = T2.ID WHERE T1.foo = 'bar' AND T2.fish = 42</code>
결론
USING, ON 및 WHERE 구문 옵션은 모두 JOIN 작업을 수행할 수 있지만 외부 조인 처리 시 가독성, 정확성 및 일관성이 뛰어나기 때문에 일반적으로 ON 구문이 선호됩니다. USING 구문은 단순성을 제공하는 반면, WHERE 구문은 잠재적인 모호성으로 인해 피해야 합니다.
위 내용은 SQL JOIN: USING, ON 또는 WHERE – 어떤 구문을 선택해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!