Menggunakan pertanyaan kesatuan untuk menggabungkan beberapa pertanyaan kepada hasil tunggal

Menggunakan pertanyaan kesatuan untuk menggabungkan beberapa pertanyaan kepada hasil tunggal

Important: Artikel ini diterjemahkan oleh mesin, lihatlah notis penafian. Sila dapatkan versi Bahasa Inggeris artikel ini di sini sebagai rujukan anda

Katakan pangkalan data Access anda mempunyai dua jadual yang tidak berkaitan – satu yang menyimpan data pelanggan dan yang satu lagi yang menyimpan data tentang pembekal – dan kedua-dua Jadual mempunyai medan maklumat kenalan. Anda ingin melihat maklumat kenalan daripada kedua-dua Jadual dalam satu pandangan. Untuk melakukan ini, mula-mula mencipta pertanyaan pilih untuk setiap jadual untuk mendapatkan maklumat kenalan, dan kemudian menggabungkan hasil tersebut dengan mencipta pertanyaan Kesatuan.

Note: Kandungan dalam artikel ini bertujuan untuk digunakan dengan pangkalan data desktop Access. Anda tidak boleh mencipta atau menggunakan pertanyaan Kesatuan dalam pangkalan data web Access atau aplikasi web Access.

Perlukan Ulang kaji untuk mencipta pertanyaan Pilih yang asas? Lihat mencipta pertanyaan Pilih.

Pertama sekali, beberapa perkara untuk diketahui tentang mencipta pertanyaan kesatuan:

  • Pertanyaan pilih yang anda gabungkan dalam pertanyaan kesatuan perlu mempunyai bilangan medan output yang sama, dalam tertib yang sama dan dengan jenis data yang sama atau serasi. Apabila anda menjalankan pertanyaan kesatuan, data daripada setiap set medan yang sepadan digabungkan ke dalam satu medan output agar output pertanyaan mempunyai bilangan medan yang sama seperti penyata SELECT.

  • Pertanyaan kesatuan adalah khusus SQL maka mesti ditulis terus ke dalam SQL. Anda bertukar kepada Pandangan SQL untuk menulis pertanyaan khusus SQL, termasuk pertanyaan kesatuan.

Langkah 1: Cipta pertanyaan pilih

Note: Walaupun anda boleh memasukkan berbilang jadual atau pertanyaan dalam pertanyaan, prosedur ini menganggap bahawa setiap pertanyaan pilih anda merangkumi data yang datang daripada satu jadual sahaja.

  1. Pada tab Cipta dalam kumpulan Pertanyaan, klik Reka Bentuk Pertanyaan.

  2. Dalam kotak dialog Tunjukkan Jadual, dwiklik jadual yang mempunyai medan yang anda ingin sertakan. Jadual ditambahkan pada tetingkap reka bentuk pertanyaan.

  3. Tutup kotak dialog Tunjukkan Jadual.

  4. Dalam tetingkap reka bentuk pertanyaan, dwiklik setiap medan yang anda ingin sertakan.
    Sambil anda memilih medan, pastikan anda menambah bilangan medan yang sama, dalam tertib yang sama dengan anda tambah pada pertanyaan pilih lain. Sila beri perhatian teliti pada jenis data dalam medan dan pastikan ia mempunyai jenis data yang serasi dengan medan dalam kedudukan yang sama seperti dalam pertanyaan lain yang anda gabungkan. Contohnya, jika pertanyaan pilih pertama anda mempunyai lima medan, yang pertamanya mengandungi data tarikh/masa, pastikan bahawa setiap pertanyaan pilih lain yang anda gabungkan turut mempunyai lima medan, yang pertama mengandungi data tarikh/masa dan seterusnya.

  5. Secara pilihan, tambah kriteria untuk medan anda dengan menaip ungkapan yang bersesuaian dalam baris kriteria bagi grid medan.

  6. Selepas anda selesai menambah medan dan kriteria medan, anda harus menjalankan pertanyaan pilih dan menyemak outputnya. Pada tab Reka bentuk , dalam Kumpulan hasil , klik jalankan.

  7. Tukar pertanyaan kepada pandangan Reka Bentuk.

  8. Simpan pertanyaan pilih dan biarkannya terbuka.

  9. Ulangi prosedur ini bagi setiap pertanyaan pilih yang anda ingin gabungkan.

Untuk maklumat lanjut tentang menggunakan kriteria dalam pertanyaan, lihat menggunakan kriteria pada pertanyaan.

Langkah 2: Gabungkan pertanyaan pilih

Dalam langkah ini, anda mencipta pertanyaan Kesatuan menggunakan penyata SQL. (Untuk maklumat lanjut, lihat seksyen sintaks SQL , di bawah.)

  1. Pada tab Cipta dalam kumpulan Pertanyaan, klik Reka Bentuk Pertanyaan.

  2. Tutup kotak dialog Tunjukkan Jadual.

  3. Pada tab Reka Bentuk dalam kumpulan Pertanyaan klik Kesatuan.

Access menyembunyikan tetingkap reka bentuk pertanyaan dan memaparkan tab objek pandangan SQL. Pada masa ini, tab objek pandangan SQL adalah kosong.

  1. Klik pada tab bagi pertanyaan pilih pertama yang anda ingin gabungkan dalam pertanyaan kesatuan.

  2. Pada rumah tab, klik pandangan > Pandangan SQL.

  3. Salin penyata SQL untuk pertanyaan pilih. Klik tab untuk pertanyaan kesatuan yang anda mula cipta dalam langkah 1.

  4. Tampal penyata SQL bagi pertanyaan pilih ke dalam tab objek pandangan SQL bagi pertanyaan kesatuan.

  5. Padamkan koma bernoktah (;) di hujung penyata SQL pertanyaan pilih.

  6. Tekan Enter untuk mengalihkan kursor ke bawah satu baris, kemudian taipkan UNION pada baris baru.

  7. KIik pada tab bagi pertanyaan pilih berikut yang anda ingin gabungkan dalam pertanyaan kesatuan.

  8. Ulangi langkah 5 hingga 10 sehingga anda telah menyalin dan menampal semua penyata SQL bagi pertanyaan pilih ke dalam tetingkap pandangan SQL bagi pertanyaan kesatuan. Jangan padamkan koma bernoktah atau taipkan apa-apa selepas penyata SQL untuk pertanyaan pilih terakhir.

  9. Pada tab Reka Bentuk, dalam kumpulan Hasil, klik Jalankan.

Hasil pertanyaan kesatuan anda muncul dalam Datasheet view.

Halaman atas

Petua untuk menggunakan pertanyaan kesatuan

  • Untuk dapat membezakan baris apa datang dari jadual mana, tambah rentetan teks sebagai medan dalam setiap penyata anda.

    Contohnya, jika satu penyata pilih mengambil medan daripada jadual bernama Produk dan satu lagi penyata pilih mengambil medan daripada jadual bernama Perkhidmatan, tambah rentetan "Produk" sebagai medan di hujung penyata pertama dan "Perkhidmatan" di hujung penyata kedua. Anda juga boleh menugaskan alias medan (contohnya, "jenis") kepada rentetan menggunakan kata kunci AS, seperti yang ditunjukkan dalam contoh berikut:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Output pertanyaan akan termasuk medan bernama "jenis" yang memaparkan sama ada baris datang dari jadual Produk atau jadual Perkhidmatan.

  • Setiap kata kunci UNION menggabungkan penyata SELECT yang mendahuluinya dan mengikutinya. Jika anda menggunakan kata kunci ALL dengan beberapa kata kunci UNION dalam pertanyaan anda tetapi bukan dengan yang lain, hasil akan menyertakan baris pendua daripada pasangan penyata SELECT yang digabungkan menggunakan UNION ALL tetapi tidak akan memperduakan baris daripada penyata SELECT yang digabungkan menggunakan UNION tanpa kata kunci ALL.

  • Nombor, jenis data dan tertib medan dalam pertanyaan pilih mesti sepadan. Anda boleh menggunakan ungkapan seperti kiraan atau subpertanyaan untuk menjadikannya sepadan.

    Contohnya, anda boleh memadankan medan tahun dua aksara dengan tahun empat aksara menggunakan fungsi Right untuk menarik dua digit terakhir bagi tahun empat aksara.

Menggunakan hasil pertanyaan kesatuan untuk mencipta jadual baru

Mula-mula, gunakan pertanyaan Kesatuan sebagai input untuk pertanyaan Pilih baru, dan kemudian gunakan pertanyaan Pilih sebagai asas pertanyaan buat Jadual, seperti yang ditunjukkan dalam langkah berikut:

  1. Cipta dan simpan pertanyaan kesatuan.

  2. Pada tab Cipta dalam kumpulan Pertanyaan, klik Reka Bentuk Pertanyaan.

  3. Dalam kotak dialog Tunjukkan Jadual, klik tab Pertanyaan.

  4. Dwiklik pertanyaan kesatuan anda kemudian tutup kotak dialog Tunjukkan Jadual.

    Note: Jika anda melihat amaran Keselamatan dalam Bar Mesej, pertanyaan tindakan mungkin dinyahdayakan. Untuk mendayakan pertanyaan tindakan, klik Dayakan Kandungan pada Bar Mesej.

  5. Dalam grid reka bentuk pertanyaan, pada tab objek pertanyaan kesatuan anda, dwiklik asterisk (*) untuk menggunakan semua medan pertanyaan kesatuan untuk membuat jadual baru.

  6. Pada tab Reka Bentuk, dalam kumpulan Jenis Pertanyaan, klik Buat Jadual.

  7. Dalam kotak dialog Buat Jadual, taip nama untuk jadual baru.

  8. Secara pilihan, tentukan pangkalan data yang berlainan untuk mencipta jadual.

  9. Klik OK.

  10. Pada tab Reka Bentuk dalam kumpulan Hasil, klik Jalankan.

Menggunakan pertanyaan kesatuan untuk melaksanakan cantuman luaran penuh

Anda boleh menggunakan pertanyaan kesatuan untuk menjalankan outer join. Cantuman luaran penuh tidak mengehadkan baris yang dikembalikan dari mana-mana jadual tercantum tetapi menggabungkan baris pada asas nilai dalam medan cantum.

  1. Cipta pertanyaan yang mempunyai cantuman luaran kiri pada medan yang anda ingin gunakan untuk cantuman luaran penuh.

  2. Pada tab Rumah, dalam kumpulan Pandangan, klik Pandangan kemudian klik Pandangan SQL.

  3. Tekan Ctrl+C untuk menyalin kod SQL.

  4. Padamkan koma bernoktah di hujung klausa FROM, kemudian tekan Enter.

  5. Taipkan UNION, dan kemudian tekan Enter.

    Note: Jangan gunakan kata kunci ALL apabila anda menggunakan pertanyaan kesatuan untuk menjalankan cantuman luaran penuh.

  6. Tekan Ctrl+V untuk menampal kod SQL yang anda salin dalam langkah 3.

  7. Dalam kod yang anda tampal, ubah LEFT JOIN kepada RIGHT JOIN.

  8. Padamkan koma bernoktah di hujung klausa FROM kedua, kemudian tekan Enter.

  9. Tambah klausa WHERE yang menentukan nilai daripada medan cantuman ialah NULL dalam medan pertama yang disenaraikan dalam klausa FROM (jadual kiri).

    Contohnya, jika klausa FROM ialah:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Anda akan menambah klausa WHERE berikut:

    WHERE Products.ID IS NULL

  10. Taipkan koma bernoktah (;) di hujung klausa WHERE untuk menunjukkan hujung pertanyaan kesatuan.

  11. Pada tab Reka Bentuk, dalam kumpulan Hasil, klik Jalankan.
    Hasil pertanyaan kesatuan anda muncul dalam Datasheet view.

Untuk maklumat lanjut, lihat mencantumkan sumber data dalam pertanyaan.

Halaman atas

Keperluan dan sintaks SQL untuk pertanyaan kesatuan

Beberapa keperluan untuk pertanyaan kesatuan

  • Pertanyaan pilih yang anda gabungkan dalam pertanyaan kesatuan perlu mempunyai bilangan medan output yang sama, dalam tertib yang sama dan dengan jenis data yang sama atau serasi. Apabila anda menjalankan pertanyaan kesatuan, data daripada setiap set medan yang sepadan digabungkan ke dalam satu medan output agar output pertanyaan mempunyai bilangan medan yang sama seperti penyata SELECT.

    Note: Untuk tujuan pertanyaan kesatuan, jenis data Nombor dan Teks adalah serasi.

  • Pertanyaan kesatuan adalah khusus SQL maka mesti ditulis terus ke dalam SQL. Anda bertukar kepada Pandangan SQL untuk menulis pertanyaan khusus SQL, termasuk pertanyaan kesatuan.

Sintaks SQL bagi pertanyaan kesatuan

Dalam pertanyaan kesatuan, setiap pertanyaan pilih (turut dipanggil penyata SELECT) mempunyai klausa berikut:

Klausa

Mengandungi senarai…

SELECT

medan yang mengandungi data yang anda ingin dapatkan semula.

FROM

jadual yang mengandungi medan tersebut.

WHERE pilihan

kriteria untuk medan tersebut.

Penyata SELECT digabungkan menggunakan kata kunci UNION.

Sintaks SQL asas untuk pertanyaan kesatuan adalah seperti berikut:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Contohnya, jika pangkalan data anda mempunyai jadual yang bernama Produk dan jadual lain bernama Perkhidmatan dan kedua-dua jadual mempunyai medan yang mengandungi nama produk atau perkhidmatan, harga, ketersediaan waranti atau jaminan, dan sama ada anda menawarkan produk atau perkhidmatan secara eksklusif. Walaupun jadual Produk menyimpan maklumat waranti dan jadual Perkhidmatan menyimpan maklumat jaminan, maklumat asas adalah sama (sama ada produk atau perkhidmatan tertentu bersertakan jaminan kualiti). Anda boleh menggunakan pertanyaan kesatuan, seperti berikut untuk menggabungkan empat medan daripada dua jadual:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Mari kita periksa contoh sintaks sebelumnya, baris demi baris:

Sintaks

Penerangan

Maklumat tambahan

SELECT name, price, warranty_available, exclusive_offer

Klausa SELECT pertama

SELECT diikuti oleh senarai pengecam yang menunjukkan medan yang anda ingin dapatkan semula data.

Klausa SELECT mesti menyenaraikan sekurang-kurangnya satu medan.

Klausa SELECT ini menyenaraikan pengecam medan name, price, warranty_available dan exclusive_offer.

Produk FROM

Klausa FROM pertama

Klausa FROM mengikuti klausa SELECT, dan bersama-sama ia membentuk penyata SELECT asas.

FROM diikuti oleh senarai pengecam yang menunjukkan jadual yang mengandungi medan yang tersenarai dalam klausa SELECT.

Klausa FROM mesti menyenaraikan sekurang-kurangnya satu jadual.

Klausa FROM ini menyenaraikan pengecam jadual Produk.

UNION ALL

Kata kunci UNION dan kata kunci ALL pilihan

Hasil penyata SELECT yang mendahului UNION digabungkan dengan hasil penyata SELECT yang mengikuti UNION.

Apabila anda menggunakan kata kunci ALL, baris pendua tidak dialih keluar daripada hasil pertanyaan kesatuan.

Dengan kata kunci ALL, pertanyaan boleh berjalan lebih laju kerana Access tidak perlu menyemak untuk baris pendua.

Gunakan kata kunci ALL jika mana-mana syarat berikut adalah benar:

  • Anda pasti bahawa pertanyaan pilih tidak akan menghasilkan sebarang baris pendua.

  • Tidak menjadi masalah kepada anda jika hasil anda mempunyai baris pendua.

  • Anda ingin melihat baris pendua.

SELECT name, price, guarantee_available, exclusive_offer

Klausa SELECT kedua

Beberapa peraturan:

  • Klausa SELECT yang kedua perlu mempunyai bilangan medan yang sama dengan klausa SELECT yang pertama.

  • Medan yang berkongsi data umum perlu muncul dalam tertib yang sama dalam klausa.

  • Medan yang berkongsi data umum perlu mempunyai jenis data yang sama atau serasi.

Note: Nama medan dalam output pertanyaan kesatuan adalah daripada klausa SELECT pertama. Jadi, dalam contoh kami, data daripada medan "warranty_available" dan daripada medan "guarantee_available" dinamakan sebagai "warranty_available" dalam output pertanyaan.

Perkhidmatan FROM

Klausa FROM kedua

Tiada pengehadan terhadap jadual dalam klausa FROM bagi pertanyaan kesatuan. Anda boleh mencipta pertanyaan kesatuan yang menggunakan jadual yang sama dalam setiap klausa FROM. Anda boleh menggunakan bilangan jadual berlainan dalam klausa FROM. Dalam contoh kami, klausa FROM setiap satunya hanya mempunyai satu jadual.

Halaman atas

Note: Notis Penafian Penterjemahan Mesin: Artikel ini telah diterjemah oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan penterjemahan mesin ini untuk membantu pengguna-pengguna yang tidak bertutur dalam Bahasa Inggeris supaya dapat menikmati kandungan mengenai produk, perkhidmatan dan teknologi Microsoft. Artikel ini mungkin mengandungi ralat perbendaharaan kata, sintaks atau tatabahasa kerana ia diterjemahkan oleh mesin.

Kembangkan kemahiran anda
Jelajahi latihan
Dapatkan ciri baru terlebih dahulu
Sertai Office Insiders

Adakah maklumat ini membantu?

Terima kasih atas maklum balas anda!

Terima kasih atas maklum balas anda! Nampaknya ia mungkin akan membantu untuk menyambungkan anda kepada salah seorang daripada ejen sokongan Office kami.

×