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>
Atas ialah kandungan terperinci Adakah MySQL Menyokong Gabungan Luar Penuh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!