Menguasai Keputusan Isih dalam MS Access UNION Queries
Menggabungkan data daripada berbilang jadual menggunakan pertanyaan UNION
dalam MS Access selalunya memberikan cabaran apabila cuba mengisih output akhir. Pendekatan naif seperti ini:
<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
tidak akan menghasilkan hasil disusun yang diingini dalam enjin pangkalan data MS Access Jet.
Penyelesaian terletak pada meletakkan klausa ORDER BY
secara strategik. Daripada menggunakannya pada keseluruhan pertanyaan UNION
, gunakannya pada setiap pernyataan SELECT
individu dalam kesatuan. Ini dicapai dengan mencipta subkueri:
<code class="language-sql">SELECT * FROM ( SELECT table1.field1 FROM table1 ORDER BY table1.field1 ) AS DUMMY_ALIAS1 UNION ALL SELECT * FROM ( SELECT table2.field1 FROM table2 ORDER BY table2.field1 ) AS DUMMY_ALIAS2</code>
Pertanyaan yang disemak ini menggunakan dua subkueri, setiap satu dengan klausa ORDER BY
nya sendiri, memastikan setiap set data diisih secara berasingan sebelum digabungkan dengan UNION ALL
. Klausa AS DUMMY_ALIAS1
dan AS DUMMY_ALIAS2
menyediakan alias untuk subkueri, yang diperlukan untuk pendekatan ini berfungsi dengan betul dalam MS Access. Kesatuan yang terhasil kemudian membentangkan data yang digabungkan dan diisih. Perhatikan penggunaan UNION ALL
, yang merangkumi semua baris, tidak seperti UNION
yang mengalih keluar pendua.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Keputusan Pertanyaan UNION secara Pengaturcaraan dalam MS Access?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!