Bergabung dalam tabel dan kueri - Access
Bergabung dalam tabel dan kueri
Saat Anda menyertakan beberapa sumber data dalam kueri Access, Anda menggunakan gabungan untuk membatasi rekaman yang ingin Anda lihat, berdasarkan pada bagaimana sumber data yang saling berhubungan. Anda juga menggunakan gabungan untuk menggabungkan rekaman dari kedua sumber data, sehingga masing-masing pasangan rekaman dari sumber menjadi satu rekaman dalam hasil kueri.
Artikel ini membahas berbagai tipe gabungan dan memperlihatkan kepada Anda cara menggunakannya dalam kueri. Secara default, gabungan secara otomatis dibuat jika telah ada hubungan antara dua sumber data yang Anda gunakan dalam kueri. Gabungan juga dibuat jika terdapat bidang yang jelas sesuai dengan satu sama lain. Anda bisa menghapus bergabung secara otomatis dibuat. Artikel ini menyediakan informasi dasar tentang hubungan tabel, termasuk cara membuatnya.
Catatan: Anda bisa ikut kueri dengan cara yang sama yang Anda gabungkan tabel-tabel, dan juga bisa bergabung keduanya.
Memperlihatkan semua baris dari satu tabel, dan baris yang berkaitan dari tabel lain
Memperlihatkan semua baris dari kedua tabel, dan bergabung dengan mereka di mana nilai yang sama ada
Gabungkan tabel-tabel berdasarkan ketidaksamaan nilai-nilai bidang
Database adalah kumpulan tabel data yang menghasilkan logika hubungan satu sama lain. Anda menggunakan hubungan menyambungkan tabel dengan bidang yang mereka memiliki kesamaan. Tabel bisa menjadi bagian dari sejumlah hubungan, tetapi setiap relasi selalu persis dua tabel. Di dalam kueri, hubungan diwakili oleh gabungan.
Saat Anda menambahkan tabel ke kueri, Access membuat gabungan yang didasarkan pada hubungan yang telah ditetapkan antara tabel. Anda bisa secara manual membuat gabungan dalam kueri, bahkan jika mereka tidak mewakili hubungan yang telah ditetapkan. Jika Anda menggunakan kueri lain (daripada atau Selain tabel) sebagai sumber data untuk kueri, Anda bisa membuat gabungan antara kueri sumber, dan juga antara kueri tersebut dan semua tabel yang Anda gunakan sebagai sumber data.
Gabungan berperilaku sama untuk kriteria kueri bahwa mereka membuat aturan yang data harus cocok dengan akan disertakan dalam operasi kueri. Tidak seperti kriteria, gabungan juga menentukan bahwa tiap pasangan baris yang memenuhi kondisi gabungan akan digabungkan di set rekaman untuk membentuk baris tunggal.
Ada empat tipe dasar gabungan: gabungan, gabungan luar, gabungan silang dan gabungan tak sama. Artikel ini membahas setiap tipe gabungan yang bisa Anda gunakan, mengapa Anda menggunakan setiap tipe, dan cara membuat gabungan.
Kaitan gabungan dengan kueri sama dengan hubungan dengan tabel: indikasi cara data dalam dua sumber bisa digabungkan berdasarkan nilai data yang sama-sama dimiliki. Berikut ilustrasi gabungan dalam Tampilan Desain kueri, dengan properti gabungan dibuka dalam kotak dialog:
Ini garis di antara tabel menunjukkan gabungan. Klik ganda gabungan untuk membuka (digambarkan) kotak dialog Properti gabungan dan meninjau atau mengubah gabungan.
Gabungan terkadang memiliki arah. Area kotak dialog memperlihatkan pada Anda letak tabel dalam gabungan, dan bidang yang digunakan untuk menggabungkan tabel.
Bidang dari kedua tabel bisa digunakan, dan data yang berkaitan dengan tugas yang ada ditampilkan dari tiap tabel. Di gabungan dalam, tidak ada data lain yang disertakan. Di gabungan luar, rekaman yang tidak berkaitan dari satu tabel juga disertakan dalam hasil kueri.
Ada empat tipe dasar gabungan: gabungan dalam, gabungan luar, gabungan silang, dan gabungan tak sama. Gabungan silang dan gabungan tak sama adalah tipe gabungan tingkat lanjut dan jarang digunakan, tetapi Anda sebaiknya mengetahuinya agar memahami sepenuhnya cara kerja gabungan.
Gabungan dalam adalah gabungan di mana Access hanya menyertakan data dari tabel jika terdapat data yang bersesuaian dalam tabel yang berkaitan, dan sebaliknya. Biasanya, Anda akan menggunakan gabungan dalam. Saat Anda membuat gabungan dan tidak menentukan jenis gabungannya, Access berasumsi Anda menginginkan gabungan dalam. Gabungan dalam berguna karena memungkinkan Anda menggabungkan data dari dua sumber berdasarkan nilai yang sama - jadi Anda hanya melihat data saat semua sudah lengkap.
Gabungan luar seperti gabungan dalam, tetapi menambahkan baris sisanya dari salah satu tabel. Gabungan luar berarah: gabungan luar kiri menyertakan semua rekaman dari tabel kiri – tabel pertama dalam gabungan – dan gabungan luar kanan menyertakan semua rekaman dari tabel kanan – tabel kedua dalam gabungan.
Dalam beberapa sistem, gabungan luar bisa menyertakan semua baris dari kedua tabel, dengan baris digabungkan jika terdapat kecocokan. Ini disebut gabungan luar penuh, dan Access tidak mendukungnya secara eksplisit. Namun, Anda bisa menggunakan gabungan silang dan kriteria untuk mendapatkan hasil serupa.
Biasanya, gabungan silang adalah efek samping dari menambahkan dua tabel ke kueri lalu lupa menggabungkannya. Access menafsirkan bahwa Anda ingin melihat tiap rekaman dari satu tabel yang digabungkan dengan tiap rekaman dari tabel lainnya –tiap kombinasi rekaman yang mungkin. Karena tidak ada yang bisa digabungkan, jenis gabungan ini jarang memberikan hasil yang berguna. Namun ada sedikit kasus di mana gabungan silang memang yang Anda butuhkan.
Gabungan tak sama menggunakan operator selain tanda sama dengan (=) untuk membandingkan nilai dan menentukan apakah data layak digabungkan dan cara menggabungkannya. Gabungan tak sama memang tidak didukung secara eksplisit, tetapi Anda bisa menggunakan gabungan silang dan kriteria untuk mendapatkan efek yang sama.
Jika Anda ingin memperlihatkan hanya barisan yang memiliki nilai yang cocok dalam bidang yang digabungkan, Anda menggunakan gabungan dalam. Access membuat gabungan dalam secara otomatis.
Gabungan yang paling umum tipe gabungan. Mereka memberitahu kueri tersebut baris dari salah satu gabungan tabel berkaitan dengan baris dalam tabel lain, berdasarkan data dalam bidang yang digabungkan. Saat menjalankan kueri dengan gabungan dalam, hanya baris tersebut mana nilai yang sama ada di kedua tabel yang digabungkan akan disertakan dalam operasi kueri.
Biasanya, Anda tidak perlu melakukan apa pun untuk menggunakan gabungan dalam. Jika tabel yang Anda tambahkan ke kueri sudah memiliki hubungan, Access otomatis membuat gabungan dalam antar tiap pasang tabel terkait, saat Anda menambahkan tabel. Jika integritas referensial diberlakukan, Access juga menampilkan "1" di atas garis gabungan untuk memperlihatkan tabel yang ada di sisi "satu" dari hubungan satu ke banyak dan tanda tak hingga (∞) untuk memperlihatkan tabel yang ada di sisi "banyak".
Bahkan jika Anda belum membuat hubungan, Access otomatis membuat gabungan jika Anda menambahkan dua tabel ke kueri dan tabel tersebut memiliki bidang dengan sama atau tipe data yang kompatibel dan salah satu bidang gabungan adalah kunci utama. Simbol "satu" dan "banyak" tidak ditampilkan dalam kasus ini, karena integritas referensial tidak diterapkan.
Jika Anda menambahkan kueri ke kueri Anda, dan tidak membuat hubungan antara kueri tersebut, Access tidak secara otomatis membuat gabungan antara kueri tersebut atau di antara kueri dan tabel. Biasanya, Anda harus membuat mereka sendiri. Anda membuat gabungan dengan menyeret bidang dari satu sumber data untuk bidang di sumber data lainnya. Access menampilkan garis di antara dua bidang untuk memperlihatkan gabungan telah dibuat.
Ada dari table1 INNER JOIN table2 ON table1. membandingkan bidang1 table2. field2
Untuk informasi selengkapnya tentang sintaks gabungan dalam, Baca topik operasi INNER JOIN.
Gabungan luar mengetahui kueri yang meskipun beberapa baris di kedua sisi gabungan sesuai persis, kueri akan menyertakan semua baris dari satu tabel, dan juga tersebut baris dari tabel lain yang berbagi nilai yang sama di kedua sisi gabungan.
Gabungan luar bisa berupa gabungan luar kiri atau bisa berupa gabungan luar kanan. Dalam gabungan luar kiri, kueri menyertakan semua baris dari tabel pertama dalam klausa FROM pernyataan SQL, dan hanya baris-baris dari tabel lainnya di mana bidang gabungan berisi nilai yang sama di kedua tabel. Dalam gabungan luar kanan, kueri menyertakan semua baris dari tabel kedua dalam klausa FROM pernyataan SQL, dan hanya baris-baris dari tabel lainnya di mana bidang gabungan berisi nilai yang sama di kedua tabel.
Catatan: Anda bisa dengan mudah mengetahui tabel mana adalah tabel kiri atau kanan tabel di gabungan tertentu dengan mengklik ganda gabungan dan lalu lihat dalam kotak dialog Properti gabungan . Anda bisa juga beralih ke tampilan SQL, dan kemudian memeriksa klausa FROM.
Karena beberapa baris di satu sisi gabungan luar tidak akan memiliki baris yang bersesuaian dari tabel lainnya, beberapa bidang yang dikembalikan dalam hasil kueri dari tabel lain tersebut akan kosong jika baris tidak bersesuaian.
Anda membuat gabungan luar dengan memodifikasi gabungan dalam yang sudah ada. Jika tidak ada gabungan dalam, Anda bisa membuatnya, lalu mengubahnya menjadi gabungan luar.
Access menampilkan gabungan dan memperlihatkan panah yang mengarah dari sumber data yang akan menyertakan semua baris ke sumber data yang hanya menyertakan baris-baris yang memenuhi kondisi gabungan.
Jika Anda membuat kueri yang berisi LEFT JOIN dan gabungan dalam, Access mungkin tidak bisa menentukan bergabung operasi dijalankan terlebih dahulu. Karena hasil berbeda bergantung pada apakah gabungan kiri atau gabungan yang dilakukan terlebih dahulu, Access menampilkan pesan kesalahan:
Untuk memperbaiki kesalahan ini, Anda harus mengubah kueri sehingga gabungan yang dijalankan terlebih dahulu.
Ada dari table1 [kiri | GABUNGAN kanan] table2
pada table1.field1 membandingkan table2.field2
Untuk informasi selengkapnya tentang sintaks gabungan luar, lihat topik LEFT JOIN, RIGHT JOIN operasi.
Saat Anda ingin memperlihatkan semua baris dari dua tabel dan bergabung mereka berdasarkan nilai-nilai umum, Anda menggunakan Penggabung luar penuh. Access memang tidak mendukung gabungan luar penuh, tapi Anda bisa mendapatkan efek yang sama dengan menggunakan kueri gabungan. Prosedur berikut ini menjelaskan cara untuk melakukan ini, tetapi jika Anda ingin informasi selengkapnya tentang kueri gabungan, lihat bagian Lihat juga .
Buat kueri yang memiliki penggabung luar kiri pada bidang yang ingin Anda gunakan untuk penggabung luar penuh.
Hapus tanda titik koma di akhir klausa FROM, dan tekan ENTER.
Tambahkan klausa WHERE yang menentukan nilai bidang gabungan yaitu NULL di dalam tabel pertama yang tercantum di dalam klausa FROM (tabel sebelah kiri).
Gabungan silang berbeda dari bergabung dalam dan luar bahwa mereka tidak secara eksplisit dinyatakan dalam Access. Di gabungan silang, masing-masing baris dari satu tabel digabungkan dengan setiap baris dari tabel lain, yang mengakibatkan apa yang disebut produk silang atau produk Cartesian. Setiap kali Anda menjalankan kueri yang memiliki tabel yang tidak secara eksplisit bergabung, produk silang hasilnya. Gabungan silang biasanya tidak disengaja, tapi ada kasus di mana mereka bisa berguna.
Kenapa saya harus menggunakan gabungan silang?
Jika Anda ingin memeriksa setiap kemungkinan kombinasi baris antara dua tabel atau kueri, menggunakan gabungan silang. Misalnya, bisnis Anda memiliki spektakuler tahun, dan Anda mempertimbangkan untuk memberikan potongan harga ke pelanggan Anda. Anda bisa menyusun kueri yang menjumlahkan masing-masing pelanggan pembelian, membuat tabel kecil yang memiliki beberapa kemungkinan potongan harga persentase, dan menggabungkan dua dalam kueri yang lain yang menjalankan gabungan silang. Anda akan menggunakan kueri yang menampilkan sekumpulan potongan harga hipotetis untuk masing-masing pelanggan.
Gabungan silang yang dihasilkan saja Anda menyertakan tabel atau kueri di kueri Anda dan membuat gabungan eksplisit setidaknya satu untuk setiap tabel atau kueri. Akses menggabungkan setiap baris dari setiap tabel atau kueri yang tidak secara eksplisit bergabung tabel atau kueri untuk setiap baris dalam hasil. Pertimbangkan skenario potongan harga dari paragraf sebelumnya. Berasumsi Anda memiliki 91 pelanggan, dan Anda ingin melihat lima potongan harga kemungkinan persentase. Gabungan silang Anda menghasilkan 455 baris (produk 91 dan 5).
Seperti yang Anda bayangkan, gabungan silang yang tidak disengaja bisa membuat besar jumlah baris dalam hasil kueri Anda. Selain itu, hasil ini biasanya berarti, karena jika Anda tidak benar-benar untuk menggabungkan setiap baris dengan setiap baris, sebagian besar baris gabungan yang muncul di hasil akan tidak masuk akal. Akhirnya, kueri yang menggunakan gabungan silang yang tidak disengaja bisa membutuhkan waktu sangat lama untuk menjalankan.
Silang yang tidak disengaja bergabung dalam tampilan desain kueri.
1. bidang dilingkari harus bergabung satu sama lain.
Produk silang yang dihasilkan oleh gabungan silang tidak disengaja yang dijelaskan di atas.
Hasil setelah dibuat gabungan yang benar.
1. Perhatikan bahwa jumlah rekaman lebih kecil.
Gabungan tidak harus didasarkan pada ekuivalensi dari bidang yang digabungkan. Gabungan bisa berdasarkan operator perbandingan apa pun, seperti lebih besar dari (>), kurang dari (<), atau tidak sama (<>). Gabungan yang tidak berdasarkan ekuivalensi disebut gabungan tak sama.
Jika Anda ingin menggabungkan baris-baris dari dua sumber data berdasarkan nilai bidang yang tidak sama, Anda menggunakan gabungan tak sama. Biasanya, gabungan tak sama didasarkan pada operator perbandingan lebih besar dari (>), kurang dari (<), lebih besar atau sama dengan (>=), atau kurang dari atau sama dengan (<=). Gabungan tak sama yang didasarkan pada operator tak sama (<>) bisa mengembalikan baris hampir sebanyak gabungan silang, dan hasilnya bisa sulit ditafsirkan.
Jika Access otomatis membuat gabungan yang tidak Anda inginkan, atau jika Anda tidak sengaja membuat gabungan — misalnya, gabungan antara dua bidang yang memiliki tipe data yang tak sama — Anda bisa menghapus gabungan tersebut.