>데이터 베이스 >MySQL 튜토리얼 >MySQL의 전체 OUTER JOIN 기능 부족을 해결하는 방법은 무엇입니까?

MySQL의 전체 OUTER JOIN 기능 부족을 해결하는 방법은 무엇입니까?

원래의
2025-01-09 21:01:42248검색

MySQL은 기본적으로 FULL OUTER JOIN을 지원하지 않습니다. 이로 인해 사용하려고 하면 구문 오류가 발생합니다.

How to Work Around MySQL's Lack of FULL OUTER JOIN Functionality?

해결책: UNION 사용

FULL OUTER JOIN의 동작을 복제하려면 MySQL에서 UNION 절을 사용하는 해결 방법이 필요합니다. 이는 LEFT JOINRIGHT JOIN의 결과를 결합합니다.

이를 달성하는 방법은 다음과 같습니다.

<code class="language-sql">SELECT airline, airports.icao_code, continent, country, province, city, website 
FROM airlines 
LEFT JOIN airports ON airlines.iaco_code = airports.iaco_code
LEFT JOIN cities ON airports.city_id = cities.city_id
LEFT JOIN provinces ON cities.province_id = provinces.province_id
LEFT JOIN countries ON cities.country_id = countries.country_id
LEFT JOIN continents ON countries.continent_id = continents.continent_id
UNION
SELECT airline, airports.icao_code, continent, country, province, city, website 
FROM airlines 
RIGHT JOIN airports ON airlines.iaco_code = airports.iaco_code
RIGHT JOIN cities ON airports.city_id = cities.city_id
RIGHT JOIN provinces ON cities.province_id = provinces.province_id
RIGHT JOIN countries ON cities.country_id = countries.country_id
RIGHT JOIN continents ON countries.continent_id = continents.continent_id;</code>

이 쿼리는 LEFT JOIN(왼쪽 테이블의 모든 행, 오른쪽에서 일치하는 행) 및 RIGHT JOIN(오른쪽 테이블의 모든 행, 왼쪽에서 일치하는 행)의 결과를 효과적으로 병합하여 다음을 제공합니다. FULL OUTER JOIN 처럼 완전한 데이터 세트입니다. UNION 작업으로 중복 항목이 제거됩니다. 중복된 내용을 보존해야 한다면 UNION ALL.

을 사용하세요.

위 내용은 MySQL의 전체 OUTER JOIN 기능 부족을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.