Rumah >pangkalan data >tutorial mysql >Adakah MySQL Menyokong Gabungan Luar Penuh?
Kekurangan MySQL Langsung Mysql Langsung Langsung Sokongan dan Penyelesaian
Soalan:
Adakah MySQL menawarkan gabungan luar asli asli, memastikan semua baris dari kedua -dua jadual bergabung dimasukkan tanpa mengira kriteria yang sepadan?Jawapannya: Tidak, MySQL tidak secara langsung menyokong gabungan luar penuh. Walau bagaimanapun, kita dapat meniru fungsi ini dengan berkesan menggunakan teknik alternatif.
Pendekatan 1: Memanfaatkan Kesatuan
Pendekatan ini sesuai apabila tidak ada risiko menjana baris pendua dalam output. Pertanyaan menggabungkan dan menggunakan
:
LEFT JOIN
RIGHT JOIN
UNION
pendekatan 2: menggunakan kesatuan semua dengan anti-join
<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>
Untuk senario di mana baris pendua mungkin, kaedah yang lebih mantap diperlukan. Ini melibatkan menggunakan bersama dengan anti-Join untuk menghapuskan redundansi:
anti-join (UNION ALL
dalam bahagian
<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>menggabungkan hasilnya. Ini memastikan emulasi yang lengkap dan tepat dari gabungan luar penuh.
Atas ialah kandungan terperinci Adakah MySQL Menyokong Gabungan Luar Penuh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!