SQL LEFT JOIN
및 RIGHT JOIN
: 항상 동일합니까?
SQL의 LEFT JOIN
및 RIGHT JOIN
절은 두 테이블의 데이터를 결합합니다. 어떤 경우에는 서로 바꿔 쓸 수 있는 것처럼 보이지만 중요한 차이점이 있습니다.
두 개의 테이블을 살펴보겠습니다.
<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10)); CREATE TABLE Table2 (id INT, Name VARCHAR(10));</code>
채우기 Table1
:
<code>Id | Name ---|----- 1 | A 2 | B</code>
그리고 Table2
:
<code>Id | Name ---|----- 1 | A 2 | B 3 | C</code>
쿼리:
<code class="language-sql">SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.id; SELECT * FROM Table2 RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>
이 특정 사례에서는 동일한 결과가 나옵니다. 두 행 모두 Table1.id = Table2.id
.
그러나 다음 대안을 고려해 보십시오 LEFT JOIN
:
<code class="language-sql">SELECT * FROM Table2 LEFT JOIN Table1 ON Table2.id = Table1.id;</code>
이 쿼리는 Table2
에 일치하지 않는 행을 포함하여 Table1
의 모든 행을 반환합니다. RIGHT JOIN
(예: FROM Table1 RIGHT JOIN Table2
)은 반대로 동작하여 일치하지 않는 행을 생략합니다.
따라서 FROM Table1 LEFT JOIN Table2
과 FROM Table2 RIGHT JOIN Table1
는 특정 조건에서 비슷한 결과를 생성할 수 있지만 조인 방향은 출력의 완성도에 큰 영향을 미칩니다. 보편적으로 상호 교환할 수는 없습니다.
위 내용은 `FROM Table1 LEFT JOIN Table2`와 `FROM Table2 RIGHT JOIN Table1`은 항상 상호 교환 가능합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!