Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengatasi Kekurangan MySQL FULL OUTER JOIN Functionality?

Bagaimana untuk Mengatasi Kekurangan MySQL FULL OUTER JOIN Functionality?

asal
2025-01-09 21:01:42248semak imbas

MySQL tidak menyokong FULL OUTER JOIN secara asli. Ini mengakibatkan ralat sintaks semasa cuba menggunakannya.

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

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn