Menggabungkan tabel dan kueri

Berlaku Untuk
Access untuk Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ketika menyertakan beberapa sumber data dalam kueri Access, Anda menggunakan gabungan untuk membatasi catatan yang ingin dilihat, berdasarkan bagaimana sumber data terkait satu sama lain. Anda juga menggunakan gabungan untuk menggabungkan rekaman dari kedua sumber data, sehingga setiap pasang rekaman dari sumber menjadi satu rekaman dalam hasil kueri.

Artikel ini membahas berbagai jenis gabungan dan menunjukkan cara menggunakannya dalam kueri. Secara default, gabungan dibuat secara otomatis jika sudah ada hubungan antara dua sumber data yang Anda gunakan dalam kueri. Gabungan juga dibuat jika ada bidang yang jelas sesuai satu sama lain. Anda dapat menghapus gabungan yang dibuat secara otomatis. Artikel ini menyediakan informasi dasar tentang hubungan tabel, termasuk cara membuatnya.

Catatan

Anda dapat menggabungkan kueri dengan cara yang sama seperti menggabungkan tabel, dan juga dapat menggabungkan keduanya.

Di artikel ini

Gambaran Umum

Database adalah kumpulan tabel data yang memiliki hubungan logis satu sama lain. Anda menggunakan hubungan untuk menghubungkan tabel berdasarkan bidang yang sama. Tabel dapat menjadi bagian dari sejumlah hubungan, tetapi setiap hubungan selalu memiliki tepat dua tabel. Dalam kueri, hubungan diwakili oleh gabungan.

Saat Anda menambahkan tabel ke kueri, Access membuat gabungan yang didasarkan pada hubungan yang telah ditentukan di antara tabel. Anda dapat membuat gabungan secara manual dalam kueri, meskipun kueri tidak mewakili hubungan yang telah ditentukan. Jika menggunakan kueri lain (bukan atau selain tabel) sebagai sumber data untuk kueri, Anda dapat membuat gabungan antara kueri sumber, dan juga antara kueri tersebut dan tabel apa pun yang Anda gunakan sebagai sumber data.

Gabungan berperilaku mirip dengan kriteria kueri karena menetapkan aturan bahwa data harus cocok untuk disertakan dalam operasi kueri. Tidak seperti kriteria, gabungan juga menentukan bahwa setiap pasang baris yang memenuhi kondisi gabungan akan digabungkan dalam kumpulan rekaman untuk membentuk satu baris.

Ada empat jenis dasar gabungan: gabungan dalam, gabungan luar, gabungan silang, dan gabungan yang tidak rata. Artikel ini mengeksplorasi setiap jenis gabungan yang dapat Anda gunakan, mengapa Anda menggunakan setiap tipe, dan cara membuat gabungan.

Gabungan adalah untuk kueri apa hubungannya dengan tabel: indikasi tentang bagaimana data dalam dua sumber dapat digabungkan berdasarkan nilai data yang mereka miliki. Berikut adalah ilustrasi gabungan dalam kueri Tampilan Desain, dengan properti gabungan terbuka dalam kotak dialog:

Kotak Gabungkan Properti.

Garis di antara tabel ini mewakili gabungan. Klik dua kali gabungan untuk membuka kotak dialog Properti Gabungan (digambarkan) dan meninjau atau mengubah gabungan.

Gabungan terkadang bersifat terarah. Area kotak dialog ini memperlihatkan tabel mana yang ada dalam gabungan, dan bidang mana yang digunakan untuk menggabungkan tabel.

Area ini menentukan jenis gabungan: opsi 1 adalah gabungan dalam, 2 adalah gabungan kiri luar, dan 3 adalah gabungan kanan luar.

Bidang dari kedua tabel dapat digunakan, dan data yang berkaitan dengan tugas tertentu ditampilkan dari masing-masing tabel. Dalam gabungan dalam, tidak ada data lain yang disertakan. Dalam gabungan luar, catatan yang tidak terkait dari satu tabel juga disertakan dalam hasil kueri.

Atas Halaman

Jenis gabungan

Ada empat jenis dasar gabungan: gabungan dalam, gabungan luar, gabungan silang, dan gabungan yang tidak rata. Gabungan silang dan gabungan yang tidak sama adalah jenis gabungan tingkat lanjut dan jarang digunakan, tetapi Anda harus mengetahuinya untuk memiliki pemahaman penuh tentang cara kerja gabungan.

Gabungan dalam adalah gabungan di mana Access hanya menyertakan data dari tabel jika ada data yang sesuai dalam tabel terkait, dan sebaliknya. Sebagian besar waktu, Anda akan menggunakan gabungan dalam. Saat Anda membuat gabungan dan tidak menentukan jenis gabungan tersebut, Access menganggap Anda menginginkan gabungan dalam. Gabungan dalam berguna karena memungkinkan Anda menggabungkan data dari dua sumber berdasarkan nilai bersama – sehingga Anda hanya melihat data jika ada gambaran lengkap.

Gabungan luar seperti gabungan dalam, tetapi menambahkan baris yang tersisa dari salah satu tabel. Gabungan luar bersifat terarah: gabungan luar kiri mencakup semua catatan dari tabel kiri – tabel pertama dalam gabungan – dan gabungan luar kanan mencakup semua catatan dari tabel kanan – tabel kedua dalam gabungan.

Gabungan luar penuh: semua data, digabungkan jika memungkinkan

Dalam beberapa sistem, gabungan luar dapat menyertakan semua baris dari kedua tabel, dengan gabungan baris jika terkait. Ini disebut gabungan luar penuh, dan Access tidak mendukungnya secara eksplisit. Namun, Anda dapat menggunakan gabungan silang dan kriteria untuk mendapatkan efek yang sama.

Gabungan silang: semua data, digabungkan dengan segala cara yang memungkinkan

Sering kali, gabungan silang adalah efek samping dari menambahkan dua tabel ke kueri dan kemudian lupa menggabungkannya. Access menafsirkan ini sebagai arti bahwa Anda ingin melihat setiap rekaman dari satu tabel digabungkan dengan setiap catatan dari tabel lain – setiap kemungkinan kombinasi rekaman. Karena tidak ada data yang dapat digabungkan, gabungan semacam ini jarang memberikan hasil yang bermanfaat. Tetapi ada beberapa kasus ketika gabungan silang adalah apa yang Anda butuhkan.

Gabungan yang tidak sama: seperti gabungan biasa, tetapi menggunakan perbandingan yang berbeda untuk menggabungkan baris

Gabungan yang tidak sama menggunakan operator selain tanda sama dengan (=) untuk membandingkan nilai dan menentukan apakah dan bagaimana menggabungkan data. Gabungan yang tidak sama tidak didukung secara eksplisit, tetapi Anda dapat menggunakan gabungan silang dan kriteria untuk mendapatkan efek yang sama.

Tampilkan baris yang memiliki nilai umum di kedua tabel yang digabungkan

Jika hanya ingin menampilkan baris yang memiliki nilai yang cocok dalam bidang gabungan, Anda menggunakan gabungan dalam. Access membuat gabungan dalam secara otomatis.

Gabungan dalam adalah jenis gabungan yang paling umum. Mereka memberi tahu kueri bahwa baris dari salah satu tabel yang digabungkan sesuai dengan baris di tabel lain, berdasarkan data dalam bidang yang digabungkan. Saat kueri dengan gabungan dalam dijalankan, hanya baris yang memiliki nilai umum di kedua tabel yang digabungkan yang akan disertakan dalam operasi kueri.

Bagaimana cara menggunakan gabungan dalam?

Sering kali, Anda tidak perlu melakukan apa pun untuk menggunakan gabungan dalam. Jika tabel yang Anda tambahkan ke kueri sudah memiliki hubungan, Access secara otomatis membuat gabungan dalam di antara setiap pasang tabel terkait, saat Anda menambahkan tabel. Jika integritas referensial diterapkan, Access juga menampilkan "1" di atas garis gabungan untuk memperlihatkan tabel mana yang berada di sisi "satu" dari hubungan satu ke banyak dan simbol tak terhingga (∞) untuk menunjukkan tabel mana yang berada di sisi "banyak".

Meskipun Anda belum membuat hubungan, Access secara otomatis membuat gabungan dalam jika Anda menambahkan dua tabel ke kueri dan tabel tersebut masing-masing memiliki bidang dengan tipe data yang sama atau kompatibel dan salah satu bidang gabungan adalah kunci utama. Simbol "satu" dan "banyak" tidak ditampilkan dalam kasus ini, karena integritas referensial tidak ditegakkan.

Jika Anda menambahkan kueri ke kueri dan belum membuat hubungan antara kueri tersebut, Access tidak secara otomatis membuat gabungan dalam antara kueri tersebut atau antara kueri dan tabel. Umumnya, Anda harus membuatnya sendiri. Anda membuat gabungan dalam dengan menyeret bidang dari satu sumber data ke bidang di sumber data lain. Access menampilkan garis di antara dua bidang untuk memperlihatkan gabungan telah dibuat.

Sintaks SQL untuk gabungan dalam

Gabungan dalam ditentukan dalam SQL dalam klausa FROM, seperti yang diperlihatkan di bawah ini:

DARI TABEL1 GABUNGAN DALAM tabel2 PADA tabel1. bidang1 membandingkan tabel2. bidang2

Operasi INNER JOIN memiliki bagian ini;

Bagian Deskripsi
table1, table2 Nama tabel yang merupakan asal rekaman yang digabungkan.
field1, field2 Nama bidang yang digabungkan. Jika bukan numerik, bidang harus memiliki tipe data yang sama dan berisi jenis data yang sama, tetapi tidak harus memiliki nama yang sama.
bandingkan Operator perbandingan relasional apa pun: "=," "<," "<>"=," ">=," atau "."<>

Untuk informasi selengkapnya tentang sintaks gabungan dalam, lihat topik Operasi GABUNGAN DALAM.

Atas Halaman

Tampilkan semua baris dari satu tabel, dan baris yang terkait dari tabel lain

Gabungan luar memberi tahu kueri bahwa meskipun beberapa baris di kedua sisi gabungan berhubungan persis, kueri harus menyertakan semua baris dari satu tabel, dan juga baris dari tabel lain yang memiliki nilai yang sama di kedua sisi gabungan.

Gabungan luar dapat berupa gabungan kiri luar atau dapat berupa gabungan kanan luar. Dalam gabungan kiri luar, kueri menyertakan semua baris dari tabel pertama dalam klausa pernyataan SQL FROM, dan hanya baris dari tabel lain di mana bidang penggabungan berisi nilai yang umum untuk kedua tabel. Dalam gabungan kanan luar, kueri menyertakan semua baris dari tabel kedua dalam klausa FROM pernyataan SQL, dan hanya baris dari tabel lain di mana bidang penggabungan berisi nilai yang umum untuk kedua tabel.

Catatan

Anda dapat dengan mudah membedakan tabel mana yang merupakan tabel kiri atau tabel kanan dalam gabungan tertentu dengan mengeklik dua kali gabungan lalu melihat dalam kotak dialog Properti Gabungan . Anda juga dapat beralih ke tampilan SQL, lalu memeriksa klausa FROM.

Karena beberapa baris di satu sisi gabungan luar tidak akan memiliki baris yang sesuai dari tabel lain, beberapa bidang yang dikembalikan dalam hasil kueri dari tabel lain akan kosong ketika baris tidak berkorespondensi.

Bagaimana cara menggunakan gabungan luar?

Anda membuat gabungan luar dengan memodifikasi gabungan dalam yang sudah ada. Jika tidak ada gabungan dalam, Anda akan membuatnya dan kemudian mengubahnya menjadi gabungan luar.

Mengubah gabungan dalam ke gabungan luar

  1. Dalam tampilan Desain kueri, klik dua kali gabungan yang ingin Anda ubah.
    Kotak dialog Properti Gabungan muncul.
  2. Dalam kotak dialog Gabungkan Properti , perhatikan pilihan yang tercantum di samping opsi 2 dan opsi 3.
  3. Klik opsi yang ingin Anda gunakan, lalu klik OK.
  4. Access menampilkan gabungan dan memperlihatkan panah yang mengarah dari sumber data tempat semua baris akan disertakan ke sumber data di mana hanya baris yang memenuhi kondisi gabungan yang akan disertakan.

Gabungan luar yang ambigu

Jika Anda membuat kueri yang berisi GABUNGAN KIRI dan GABUNGAN DALAM, Access mungkin tidak dapat menentukan operasi gabungan mana yang akan dilakukan terlebih dahulu. Karena hasilnya berbeda tergantung pada apakah gabungan kiri atau gabungan dalam dilakukan terlebih dahulu, Access menampilkan pesan kesalahan:

Untuk memperbaiki kesalahan ini, Anda harus mengubah kueri sehingga jelas gabungan mana yang harus dilakukan terlebih dahulu.

Sintaks SQL untuk gabungan luar

Gabungan luar ditentukan dalam SQL dalam klausa FROM, seperti yang diperlihatkan di bawah ini:

DARI TABEL1 [ KIRI | KANAN ] GABUNG KE TABEL2
DI tabel1.bidang1 bandingkan tabel2.bidang2

Operasi LEFT JOIN dan RIGHT JOIN memiliki bagian ini:

Bagian Deskripsi
table1, table2 Nama tabel yang merupakan asal rekaman yang digabungkan.
field1, field2 Nama bidang yang digabungkan. Bidang harus memiliki tipe data yang sama dan berisi jenis data yang sama, tetapi tidak perlu memiliki nama yang sama.
bandingkan Operator perbandingan relasional apa pun: "=," "<," "<>"=," ">=," atau "."<>

Untuk informasi selengkapnya tentang sintaks gabungan luar, lihat topik OPERASI GABUNGAN KIRI, GABUNGAN KANAN.

Atas Halaman

Tampilkan semua baris dari kedua tabel, dan gabungkan baris yang memiliki nilai umum

Jika ingin menampilkan semua baris dari dua tabel dan menggabungkannya berdasarkan nilai umum, Anda menggunakan gabungan luar penuh. Access tidak secara eksplisit mendukung gabungan luar penuh, tetapi Anda dapat mencapai efek yang sama dengan menggunakan kueri gabungan. Prosedur berikut menjelaskan cara melakukannya, tetapi jika Anda menginginkan informasi selengkapnya tentang kueri union, lihat bagian Lihat Juga .

Untuk menggunakan kueri gabungan guna melakukan gabungan luar penuh:

  1. Buat kueri yang memiliki gabungan kiri luar pada bidang yang ingin Anda gunakan untuk gabungan luar penuh.

  2. Pada tab Beranda, di dalam grup Tampilan, klik Tampilan, lalu klik Tampilan SQL.

  3. Tekan CTRL+C untuk menyalin kode SQL.

  4. Hapus titik koma di akhir klausa FROM, lalu tekan ENTER.

  5. Ketik UNION, lalu tekan ENTER.

    Catatan

    Jangan gunakan kata kunci ALL saat Anda menggunakan kueri gabungan untuk melakukan gabungan luar penuh.

  6. Tekan CTRL+V untuk menempelkan kode SQL yang Anda salin di langkah 3.

  7. Dalam kode yang Anda tempelkan, ubah GABUNGAN KIRI menjadi GABUNGAN KANAN.

  8. Hapus titik koma di akhir klausa FROM kedua, lalu tekan ENTER.

  9. Tambahkan klausa WHERE yang menentukan bahwa nilai bidang gabungan adalah NULL dalam tabel pertama yang tercantum dalam klausa FROM (tabel kiri).
    Misalnya, jika klausa FROM adalah:

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

    Anda perlu menambahkan klausa WHERE berikut:
    WHERE Products.ID IS NULL

  10. Ketik titik koma (;) di akhir klausa WHERE untuk menunjukkan akhir kueri gabungan.

  11. Pada tab Desain, dalam grup Hasil, klik Jalankan.

Gabungan silang

Gabungan silang berbeda dari gabungan dalam dan luar karena tidak direpresentasikan secara eksplisit di Access. Dalam gabungan silang, setiap baris dari satu tabel digabungkan dengan setiap baris dari tabel lain, menghasilkan apa yang disebut produk silang atau produk Kartesius. Setiap kali Anda menjalankan kueri yang memiliki tabel yang tidak digabungkan secara eksplisit, produk silang adalah hasilnya. Gabungan silang biasanya tidak disengaja, tetapi ada kasus di mana mereka bisa berguna.

Mengapa saya menggunakan gabungan silang?

Jika Anda ingin memeriksa setiap kemungkinan kombinasi baris antara dua tabel atau kueri, gunakan gabungan silang. Misalnya, misalkan bisnis Anda mengalami tahun yang spektakuler, dan Anda sedang mempertimbangkan untuk memberikan potongan harga kepada pelanggan Anda. Anda dapat membuat kueri yang menjumlahkan pembelian setiap pelanggan, membuat tabel kecil yang memiliki beberapa persentase rabat yang memungkinkan, dan menggabungkan keduanya dalam kueri lain yang melakukan penggabungan silang. Anda akan mendapatkan kueri yang menampilkan serangkaian potongan harga hipotetis untuk setiap pelanggan.

Bagaimana cara menggunakan gabungan silang?

Gabungan silang dihasilkan setiap kali Anda menyertakan tabel atau kueri dalam kueri dan tidak membuat setidaknya satu gabungan eksplisit untuk setiap tabel atau kueri. Access menggabungkan setiap baris dari setiap tabel atau kueri yang tidak secara eksplisit digabungkan ke tabel atau kueri lain ke setiap baris lain dalam hasil. Pertimbangkan skenario rabat dari paragraf sebelumnya. Asumsikan Anda memiliki 91 pelanggan, dan Anda ingin melihat lima kemungkinan persentase rabat. Gabungan silang Anda menghasilkan 455 baris (produk dari 91 dan 5).

Seperti yang mungkin Anda bayangkan, gabungan silang yang tidak disengaja dapat membuat sejumlah besar baris dalam hasil kueri Anda. Selain itu, hasil ini umumnya tidak ada artinya, karena jika Anda tidak benar-benar berniat untuk menggabungkan setiap baris dengan setiap baris lainnya, sebagian besar baris gabungan yang muncul dalam hasil tidak akan masuk akal. Akhirnya, kueri yang menggunakan gabungan silang yang tidak disengaja dapat memakan waktu yang sangat lama untuk dijalankan.

Unintentianl silang bergabung dalam kueri Tampilan desain 1. Bidang yang dilingkari harus digabungkan satu sama lain.

Produk silang yang tidak disengaja 1. Perhatikan jumlah catatan yang sangat banyak.

Hasil kueri yang dikoreksi 1. Perhatikan bahwa jumlah catatan jauh lebih sedikit.

Atas Halaman

Menggabungkan tabel berdasarkan ketidaksetaraan nilai bidang

Gabungan tidak harus didasarkan pada kesetaraan bidang yang digabungkan. Gabungan dapat didasarkan pada operator perbandingan apa pun, seperti lebih besar dari (>), kurang dari (<), atau tidak sama dengan (<>). Gabungan yang tidak didasarkan pada kesetaraan disebut gabungan tidak sama.

Jika Anda ingin menggabungkan baris dua sumber data berdasarkan nilai bidang yang tidak sama, Anda menggunakan gabungan yang tidak sama. Biasanya, gabungan yang tidak sama didasarkan pada operator perbandingan yang lebih besar dari (),> kurang dari (<), lebih besar dari atau sama dengan (>=), atau kurang dari atau sama dengan (<=). Gabungan tidak sama yang didasarkan pada operator does not equal (<>) dapat mengembalikan baris sebanyak gabungan silang, dan hasilnya mungkin sulit untuk ditafsirkan.

Bagaimana cara menggunakan gabungan yang tidak sama?

Gabungan yang tidak sama tidak didukung dalam tampilan Desain. Jika ingin menggunakannya, Anda harus melakukannya menggunakan tampilan SQL. Namun, Anda dapat membuat gabungan dalam tampilan Desain, beralih ke tampilan SQL, menemukan operator perbandingan sama dengan (=), dan mengubahnya ke operator yang ingin Anda gunakan. Setelah melakukannya, Anda hanya dapat membuka kueri dalam tampilan Desain lagi jika terlebih dahulu mengubah operator perbandingan kembali ke sama dengan (=) dalam tampilan SQL.

Menghapus gabungan

Jika Access secara otomatis membuat gabungan yang tidak Anda inginkan, atau jika Anda membuat gabungan secara tidak sengaja—misalnya, gabungan antara dua bidang yang memiliki tipe data yang berbeda—Anda dapat menghapus gabungan tersebut.

  1. Di kisi desain kueri, klik gabungan yang ingin Anda hapus.
  2. Tekan DELETE.

-atau-

  • Di kisi desain kueri, klik kanan gabungan yang ingin Anda hapus, lalu klik Hapus.

Atas Halaman

Menambahkan catatan ke tabel dengan menggunakan kueri tambahanMenggabungkan hasil dari beberapa kueri pilihan menggunakan kueri UNIONMembuat kueri berdasarkan beberapa tabelMembuat, mengedit, atau menghapus hubungan