MySQL에는 직접 완전 외부 조인 지원 및 해결 방법이 없습니다
질문: MySQL은 기본 완전 외부 조인을 제공하여 일치 기준에 관계없이 조인된 두 테이블의 모든 행이 포함되도록 보장합니까?
답변: 아니요, MySQL은 완전 외부 조인을 직접 지원하지 않습니다. 그러나 대체 기술을 사용하면 이 기능을 효과적으로 복제할 수 있습니다.
접근방식 1: UNION 활용
이 접근 방식은 출력에 중복 행이 생성될 위험이 없는 경우에 적합합니다. 쿼리는 LEFT JOIN
:RIGHT JOIN
을 사용하여 UNION
과
<code class="language-sql">SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id UNION SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id;</code>
접근법 2: Anti-Join을 사용하는 UNION ALL 채용
중복 행이 가능한 시나리오의 경우 더 강력한 방법이 필요합니다. 여기에는 중복성을 제거하기 위해 안티 조인과 함께 UNION ALL
을 사용하는 작업이 포함됩니다.
<code class="language-sql">SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id UNION ALL SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id WHERE t1.id IS NULL;</code>
안티 조인(WHERE t1.id IS NULL
부분의 RIGHT JOIN
)은 UNION ALL
작업이 결과를 결합하기 전에 중복 항목을 필터링합니다. 이를 통해 완전 외부 조인의 완전하고 정확한 에뮬레이션이 보장됩니다.
위 내용은 MySQL이 전체 외부 조인을 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!