집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 LEFT JOIN과 RIGHT JOIN 쿼리를 언제 교환할 수 있나요?
SQL의 LEFT JOIN
및 RIGHT JOIN
: 언제 동등합니까?
LEFT JOIN
및 RIGHT JOIN
는 일치하는 값을 기준으로 두 테이블의 행을 병합합니다. 기능적으로는 유사하지만 중요한 차이점이 있습니다.
예를 들어 보겠습니다.
<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10)); CREATE TABLE Table2 (id INT, Name VARCHAR(10)); INSERT INTO Table1 (id, Name) VALUES (1, 'A'), (2, 'B'); INSERT INTO Table2 (id, Name) VALUES (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
필드를 사용하여 Table2
의 행을 id
의 해당 행과 일치시킵니다. LEFT JOIN
에는 Table1
의 모든 행이 포함되고, RIGHT JOIN
에는 Table2
에 대한 동일한 작업이 포함됩니다.
그러나 다음 사항을 고려하십시오.
<code class="language-sql">SELECT * FROM Table2 LEFT JOIN Table1 ON Table1.id = Table2.id;</code>
또는 이에 상응하는 내용:
<code class="language-sql">SELECT * FROM Table1 RIGHT JOIN Table2 ON Table1.id = Table2.id;</code>
출력이 다릅니다. 그러면 Table2
의 모든 행과 Table1
의 일치하는 행이 반환됩니다. 이는 한 테이블의 행이 다른 테이블의 일치 항목 없이도 포함되는 "외부 조인"입니다. 중요한 것은 왼쪽 또는 오른쪽 지정에 따라 다른 테이블의 일치하는 행에 관계없이 결과 집합에 완전히 포함되도록 보장되는 테이블의 행이 지정된다는 것입니다. 따라서 쿼리에서 테이블을 단순 교체한다고 해서 항상 동일한 결과가 생성되는 것은 아닙니다. 호환성은 전적으로 데이터와 원하는 결과에 따라 달라집니다.
위 내용은 SQL에서 LEFT JOIN과 RIGHT JOIN 쿼리를 언제 교환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!