Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengatasi Kekurangan MySQL FULL OUTER JOIN Functionality?
MySQL tidak menyokong FULL OUTER JOIN
secara asli. Ini mengakibatkan ralat sintaks semasa cuba menggunakannya.
Penyelesaian: Menggunakan UNION
Untuk meniru gelagat FULL OUTER JOIN
, MySQL memerlukan penyelesaian menggunakan klausa UNION
. Ini menggabungkan hasil LEFT JOIN
dan RIGHT JOIN
.
Berikut ialah cara untuk mencapai ini:
<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>
Pertanyaan ini menggabungkan hasil LEFT JOIN
(semua baris dari jadual kiri, memadankan baris dari kanan) dengan berkesan dan RIGHT JOIN
(semua baris dari jadual kanan, memadankan baris dari kiri), menyediakan set data lengkap seperti yang dilakukan FULL OUTER JOIN
. Ambil perhatian bahawa pendua akan dialih keluar oleh operasi UNION
. Jika anda perlu menyimpan pendua, gunakan UNION ALL
.
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Kekurangan MySQL FULL OUTER JOIN Functionality?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!