Menyesuaikan Gabungan Luar Penuh dalam Microsoft Access
Microsoft Access tidak menyokong klausa FULL OUTER JOIN
secara langsung yang terdapat dalam sistem pangkalan data lain seperti SQL Server atau MySQL. Untuk mencapai kefungsian yang setara, anda perlu menggabungkan operasi LEFT JOIN
dan RIGHT JOIN
menggunakan operator set UNION
atau UNION ALL
.
Menukar Pertanyaan Sertaan Luar Penuh
Katakan anda mempunyai pertanyaan SQL ini menggunakan FULL OUTER JOIN
:
<code class="language-sql">SELECT * FROM AA FULL OUTER JOIN BB ON (AA.C_ID = BB.C_ID);</code>
Berikut ialah cara untuk menulis semula untuk keserasian dengan Microsoft Access:
Kaedah 1: Menggunakan UNION
<code class="language-sql">SELECT * FROM AA LEFT JOIN BB ON (AA.C_ID = BB.C_ID) UNION SELECT * FROM AA RIGHT JOIN BB ON (AA.C_ID = BB.C_ID)</code>
Kaedah ini menggabungkan hasil LEFT JOIN
(semua baris daripada AA
, memadankan baris daripada BB
) dan RIGHT JOIN
(semua baris daripada BB
, memadankan baris daripada AA
). Operator UNION
menggabungkan hasil carian ini, mengalih keluar baris pendua.
Kaedah 2: Menggunakan UNION ALL (untuk prestasi yang berpotensi lebih baik)
Untuk prestasi yang berpotensi dipertingkatkan, terutamanya dengan set data yang lebih besar, pertimbangkan alternatif ini:
<code class="language-sql">SELECT * FROM AA INNER JOIN BB ON AA.C_ID = BB.C_ID UNION ALL SELECT * FROM AA LEFT JOIN BB ON AA.C_ID = BB.C_ID WHERE BB.C_ID IS NULL UNION ALL SELECT * FROM AA RIGHT JOIN BB ON AA.C_ID = BB.C_ID WHERE AA.C_ID IS NULL</code>
Pendekatan ini menggunakan UNION ALL
(yang menyimpan pendua) dan memisahkan cantuman kepada komponen dalam, kiri dan kanan, secara eksplisit mengendalikan kes di mana C_ID
tiada dalam mana-mana jadual. Ini boleh menjadi lebih cekap daripada kaedah UNION
yang lebih mudah.
Pertimbangan Penting:
C_ID
tidak boleh dibatalkan. Jika boleh jadi NULL
, anda mungkin perlu melaraskan klausa WHERE
untuk mengambil kira senario ini.UNION
mengalih keluar pendua; UNION ALL
menyimpannya. Pilih operator yang sesuai dengan keperluan anda.FULL OUTER JOIN
sebenar. Pertimbangkan untuk mengoptimumkan pertanyaan atau reka bentuk pangkalan data anda jika prestasi menjadi kebimbangan.Dengan menggunakan teknik ini, anda boleh meniru gelagat FULL OUTER JOIN
dengan berkesan dalam Microsoft Access. Ingat untuk memilih kaedah yang paling mengimbangi kebolehbacaan dan prestasi untuk data khusus dan keperluan pertanyaan anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Pertanyaan Sertai Luar Penuh untuk Berfungsi dalam Microsoft Access?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!