집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 전체 OUTER JOIN 기능 부족을 해결하는 방법은 무엇입니까?
MySQL은 기본적으로 FULL OUTER JOIN
을 지원하지 않습니다. 이로 인해 사용하려고 하면 구문 오류가 발생합니다.
해결책: UNION 사용
FULL OUTER JOIN
의 동작을 복제하려면 MySQL에서 UNION
절을 사용하는 해결 방법이 필요합니다. 이는 LEFT JOIN
및 RIGHT 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!