Saat Anda menyertakan beberapa sumber data dalam kueri Access, Anda menggunakan gabungan untuk membatasi rekaman yang ingin Anda lihat, 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 tipe gabungan dan memperlihatkan cara menggunakannya dalam kueri. Secara default, gabungan secara otomatis dibuat jika sudah ada hubungan antara dua sumber data yang Anda gunakan dalam kueri. Gabungan juga dibuat jika ada bidang yang terkait dengan satu sama lain dengan jelas. Anda dapat menghapus gabungan yang dibuat secara otomatis. Artikel ini menyediakan informasi dasar tentang hubungan tabel, termasuk cara membuatnya.
Catatan: Anda bisa menggabungkan kueri dengan cara yang sama dengan yang Anda gabungkan tabel, dan juga bisa menggabungkan keduanya.
Dalam artikel ini
-
Memperlihatkan baris di mana nilai umum ada di kedua tabel yang digabungkan
-
Memperlihatkan semua baris dari satu tabel, dan baris terkait dari tabel lainnya
-
Memperlihatkan semua baris dari kedua tabel, dan menggabungkannya di mana nilai umum ada
-
Menggabungkan tabel berdasarkan ketidaksetaraan nilai bidang
Gambaran Umum
Database adalah kumpulan tabel data yang memiliki hubungan logika satu sama lain. Anda menggunakan hubungan untuk menyambungkan tabel menurut bidang yang memiliki kesamaan. Tabel bisa menjadi bagian dari sejumlah hubungan, tapi setiap hubungan selalu memiliki dua tabel yang tepat. 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 bisa membuat gabungan dalam kueri secara manual, bahkan jika mereka tidak mewakili hubungan yang sudah ditentukan. Jika Anda menggunakan kueri lain (bukan atau selain tabel) sebagai sumber data untuk kueri, Anda bisa membuat gabungan antara kueri sumber, dan juga antara kueri tersebut dan tabel apa pun yang Anda gunakan sebagai sumber data.
Gabungan berperilaku sama dengan kriteria kueri yang menetapkan aturan yang harus disertakan data dalam operasi kueri. Tidak seperti kriteria, gabungan juga menentukan bahwa setiap pasangan baris yang memenuhi kondisi gabungan akan digabungkan dalam kumpulan rekaman untuk membentuk satu baris.
Ada empat tipe dasar gabungan: gabungan dalam, gabungan luar, gabungan silang, dan gabungan yang tidak sama. Artikel ini menjelajahi setiap tipe gabungan yang bisa Anda gunakan, mengapa Anda menggunakan setiap tipe, dan cara membuat gabungan.
Gabungan adalah untuk membuat kueri hubungan apa dengan tabel: indikasi bagaimana data dalam dua sumber bisa digabungkan berdasarkan nilai data yang sama. Berikut ilustrasi gabungan dalam Tampilan Desain kueri, dengan properti gabungan terbuka dalam kotak dialog:
Baris di antara tabel ini mewakili gabungan. Klik ganda gabungan untuk membuka kotak dialog Properti Gabungan (digambarkan) dan meninjau atau mengubah gabungan.
Gabungan terkadang terarah. Area kotak dialog ini memperlihatkan tabel mana yang berada dalam gabungan, dan bidang mana yang digunakan untuk menggabungkan tabel.
Area ini menentukan tipe gabungan: opsi 1 adalah gabungan dalam, 2 adalah gabungan luar kiri, 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, rekaman yang tidak terkait dari satu tabel juga disertakan dalam hasil kueri.
Tipe gabungan
Ada empat tipe dasar gabungan: gabungan dalam, gabungan luar, gabungan silang, dan gabungan yang tidak sama. Gabungan silang dan gabungan yang tidak sama merupakan tipe gabungan tingkat lanjut dan jarang digunakan, tetapi Anda harus tahu tentang gabungan tersebut agar memiliki pemahaman penuh tentang cara kerja gabungan.
Gabungan dalam: hanya data terkait dari kedua tabel yang digabungkan
Gabungan dalam adalah gabungan dalam di mana Access hanya menyertakan data dari tabel jika ada data terkait dalam tabel terkait, dan sebaliknya. Sering kali, Anda akan menggunakan gabungan dalam. Saat Anda membuat gabungan dan tidak menentukan jenis gabungannya, Access mengasumsikan Anda menginginkan gabungan dalam. Gabungan dalam berguna karena memungkinkan Anda menggabungkan data dari dua sumber berdasarkan nilai bersama - sehingga Anda hanya melihat data ketika ada gambaran lengkap.
Gabungan luar: semua data terkait digabungkan dengan benar, ditambah semua rekaman yang tersisa dari satu tabel
Gabungan luar seperti gabungan dalam, tetapi menambahkan baris yang tersisa dari salah satu tabel. Gabungan luar bersifat terarah: gabungan luar kiri menyertakan semua rekaman dari tabel kiri – tabel pertama dalam gabungan – dan gabungan kanan luar menyertakan semua rekaman 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 baris yang digabungkan ketika baris tersebut sesuai. Ini disebut gabungan luar penuh, dan Access tidak mendukungnya secara eksplisit. Namun, Anda bisa 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 lalu lupa untuk menggabungkannya. Access menginterpretasikan hal ini berarti Bahwa Anda ingin melihat setiap rekaman dari satu tabel yang digabungkan dengan setiap rekaman dari tabel lain – setiap kombinasi rekaman yang memungkinkan. Karena tidak ada data yang dapat digabungkan, gabungan semacam ini jarang menghasilkan hasil yang berguna. Tetapi ada beberapa kasus ketika gabungan silang hanyalah yang Anda butuhkan.
Gabungan yang tidak sama: seperti gabungan biasa, tetapi menggunakan perbandingan berbeda untuk menggabungkan baris
Gabungan yang tidak sama menggunakan operator selain tanda sama dengan (=) untuk membandingkan nilai dan menentukan apakah dan cara menggabungkan data. Gabungan yang tidak sama tidak didukung secara eksplisit, tetapi Anda bisa menggunakan gabungan silang dan kriteria untuk mendapatkan efek yang sama.
Memperlihatkan baris di mana nilai umum ada di kedua tabel yang digabungkan
Jika Anda hanya ingin memperlihatkan baris yang memiliki nilai yang cocok dalam bidang yang digabungkan, Gunakan 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 terkait dengan baris di tabel lain, berdasarkan data dalam bidang yang digabungkan. Ketika kueri dengan gabungan dalam dijalankan, hanya baris yang nilai umumnya ada 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 yang ada di sisi “satu” dari hubungan satu ke banyak dan simbol tak terhingga (∞) untuk memperlihatkan tabel yang ada di sisi “banyak”.
Bahkan jika 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 diberlakukan.
Jika Anda menambahkan kueri ke kueri Anda, 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 klausul FROM, seperti yang diperlihatkan di bawah ini:
FROM tabel1 INNER JOIN tabel2 ON tabel1.bidang1 bandingkan 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 berupa tipe data yang sama dan berisi jenis data yang sama, tetapi tidak harus memiliki nama yang sama. |
bandingkan |
Operator perbandingan relasional apa pun: "=," "<," ">," "<=," ">=," or "<>." |
Untuk informasi selengkapnya tentang sintaks gabungan dalam, lihat topik Operasi INNER JOIN.
Memperlihatkan semua baris dari satu tabel, dan baris terkait dari tabel lainnya
Gabungan luar memberi tahu kueri bahwa meskipun beberapa baris di kedua sisi gabungan sama persis, kueri harus menyertakan semua baris dari satu tabel, dan juga baris dari tabel lain yang berbagi nilai umum di kedua sisi gabungan.
Gabungan luar bisa berupa gabungan kiri luar atau bisa gabungan kanan luar. Dalam gabungan luar kiri, kueri menyertakan semua baris dari tabel pertama dalam klausul Pernyataan SQL FROM, dan hanya baris dari tabel lain di mana bidang gabungan berisi nilai yang umum untuk kedua tabel. Dalam gabungan kanan luar, kueri menyertakan semua baris dari tabel kedua dalam klausul Pernyataan SQL FROM, dan hanya baris dari tabel lain di mana bidang gabungan berisi nilai yang umum untuk kedua tabel.
Catatan: Anda dapat dengan mudah mengetahui tabel mana yang merupakan tabel kiri atau tabel kanan dalam gabungan tertentu dengan mengklik ganda gabungan lalu mencari dalam kotak dialog Properti Gabungan . Anda juga dapat beralih ke tampilan SQL, lalu memeriksa klausul FROM.
Karena beberapa baris di satu sisi gabungan luar tidak akan memiliki baris terkait dari tabel lain, beberapa bidang yang dikembalikan dalam hasil kueri dari tabel lain tersebut akan kosong ketika baris tidak sesuai.
Bagaimana cara menggunakan gabungan luar?
Anda membuat gabungan luar dengan mengubah gabungan dalam yang sudah ada. Jika tidak ada gabungan dalam, Anda membuatnya, lalu mengubahnya menjadi gabungan luar.
Mengubah gabungan dalam menjadi gabungan luar
-
Dalam tampilan Desain kueri, klik ganda gabungan yang ingin Anda ubah.
Kotak dialog Properti Gabungan muncul.
-
Dalam kotak dialog Properti Gabungan , perhatikan pilihan yang tercantum di samping opsi 2 dan opsi 3.
-
Klik opsi yang ingin Anda gunakan, lalu klik OK.
-
Access menampilkan gabungan dan memperlihatkan panah yang menunjuk dari sumber data di mana 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 LEFT JOIN dan INNER JOIN, Access mungkin tidak dapat menentukan operasi gabungan mana yang akan dijalankan 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 agar jelas gabungan mana yang harus dijalankan terlebih dahulu.
Sintaks SQL untuk gabungan luar
Gabungan luar ditentukan dalam SQL dalam klausul FROM, seperti yang diperlihatkan di bawah ini:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 compare table2.field2Operasi 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 tersebut harus berupa tipe data yang sama dan berisi jenis data yang sama, tetapi bidang tersebut tidak harus memiliki nama yang sama. |
bandingkan |
Operator perbandingan relasional apa pun: "=," "<," ">," "<=," ">=," or "<>." |
Untuk informasi selengkapnya tentang sintaks gabungan luar, lihat topik Operasi LEFT JOIN, RIGHT JOIN.
Memperlihatkan semua baris dari kedua tabel, dan menggabungkannya di mana nilai umum ada
Saat Anda ingin memperlihatkan 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 bisa mendapatkan efek yang sama dengan menggunakan kueri gabungan. Prosedur berikut ini menjelaskan cara melakukan ini, tetapi jika Anda menginginkan informasi selengkapnya tentang kueri gabungan, lihat bagian Lihat Juga .
Untuk menggunakan kueri gabungan untuk melakukan gabungan luar penuh:
-
Buat kueri yang memiliki gabungan kiri luar pada bidang yang ingin Anda gunakan untuk gabungan luar penuh.
-
Pada tab Beranda, di dalam grup Tampilan, klik Tampilan, lalu klik Tampilan SQL.
-
Tekan CTRL+C untuk menyalin kode SQL.
-
Hapus titik koma di akhir klausul FROM, lalu tekan ENTER.
-
Ketik UNION, lalu tekan ENTER.
Catatan: Jangan gunakan kata kunci ALL saat Anda menggunakan kueri gabungan untuk melakukan gabungan luar penuh.
-
Tekan CTRL+V untuk menempelkan kode SQL yang Anda salin di langkah 3.
-
Dalam kode yang Anda tempelkan, ubah LEFT JOIN menjadi RIGHT JOIN.
-
Hapus titik koma di akhir klausul FROM kedua, lalu tekan ENTER.
-
Tambahkan klausul WHERE yang menentukan bahwa nilai bidang gabungan adalah NULL dalam tabel pertama yang tercantum dalam klausul FROM (tabel kiri).
Misalnya, jika klausul FROM adalah:
FROM Products RIGHT JOIN [Order Details]
ON Products.ID = [Order Details].[Product ID]Anda akan menambahkan klausul WHERE berikut:
WHERE Products.ID IS NULL
-
Ketikkan titik koma (;) di akhir klausul WHERE untuk menunjukkan akhir kueri gabungan.
-
Pada tab Desain, dalam grup Hasil, klik Jalankan.
Gabungan silang
Gabungan silang berbeda dari gabungan dalam dan luar yang tidak dinyatakan secara eksplisit dalam Access. Dalam gabungan silang, setiap baris dari satu tabel digabungkan dengan setiap baris dari tabel lain, menghasilkan apa yang disebut produk silang atau produk Cartesian. 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 dapat berguna.
Mengapa saya harus menggunakan gabungan silang?
Jika Anda ingin memeriksa setiap kemungkinan kombinasi baris antara dua tabel atau kueri, gunakan gabungan silang. Misalnya, anggaplah bisnis Anda telah memiliki tahun yang spektakuler, dan Anda sedang mempertimbangkan untuk memberikan potongan untuk pelanggan Anda. Anda bisa menyusun kueri yang menjumlahkan setiap pembelian pelanggan, membuat tabel kecil yang memiliki beberapa kemungkinan persentase potongan harga, dan menggabungkan keduanya dalam kueri lain yang melakukan gabungan silang. Anda berakhir dengan kueri yang menampilkan sekumpulan potongan hipotesis untuk setiap pelanggan.
Bagaimana cara menggunakan gabungan silang?
Gabungan silang dihasilkan kapan saja Anda menyertakan tabel atau kueri dalam kueri Dan jangan buat setidaknya satu gabungan eksplisit untuk setiap tabel atau kueri. Access menggabungkan setiap baris dari setiap tabel atau kueri yang tidak digabungkan secara eksplisit ke tabel atau kueri lain ke setiap baris lain dalam hasil. Pertimbangkan skenario potongan harga dari paragraf sebelumnya. Asumsikan Anda memiliki 91 pelanggan, dan anda ingin melihat lima kemungkinan persentase potongan harga. Gabungan silang Anda menghasilkan 455 baris (produk 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. Terakhir, kueri yang menggunakan gabungan silang yang tidak disengaja dapat memakan waktu lama untuk dijalankan.
1. Bidang yang dilingkari harus digabungkan satu sama lain.
1. Perhatikan jumlah catatan yang sangat besar.
1. Perhatikan bahwa jumlah rekaman jauh lebih kecil.
Menggabungkan tabel berdasarkan ketidaksetaraan nilai bidang
Gabungan tidak harus didasarkan pada kesamaan 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 kesamaan disebut gabungan yang tidak sama.
Jika Anda ingin menggabungkan baris dari dua sumber data berdasarkan nilai bidang yang tidak sama, Anda menggunakan gabungan yang tidak sama. Biasanya, gabungan yang tidak sama didasarkan pada yang lebih besar dari (>), kurang dari (<), lebih besar dari atau sama dengan (>=), atau kurang dari atau sama dengan (<=) operator perbandingan. Gabungan yang tidak sama yang didasarkan pada operator tidak sama dengan (<>) bisa mengembalikan hampir sebanyak baris sebagai gabungan silang, dan hasilnya bisa sulit untuk diinterpretasikan.
Bagaimana cara menggunakan gabungan yang tidak sama?
Gabungan yang tidak sama tidak didukung dalam tampilan Desain. Jika Anda ingin menggunakannya, Anda harus melakukannya dengan menggunakan tampilan SQL. Namun, Anda bisa membuat gabungan dalam tampilan Desain, beralih ke tampilan SQL, menemukan operator perbandingan yang sama dengan (=), dan mengubahnya ke operator yang ingin Anda gunakan. Setelah melakukan ini, Anda hanya bisa membuka kueri dalam tampilan Desain lagi jika Anda 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 karena kesalahan — misalnya, gabungan antara dua bidang yang memiliki tipe data yang berbeda — Anda bisa menghapus gabungan.
-
Di kisi desain kueri, klik gabungan yang ingin Anda hapus.
-
Tekan DELETE.
-atau-
-
Di kisi desain kueri, klik kanan gabungan yang ingin Anda hapus, lalu klik Hapus.