ID Artikel: 136699 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0

Deskripsi dari penggunaan bergabung dalam Microsoft permintaan

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini membahas menggunakan bergabung dalam Microsoft permintaan. A bergabung adalah metode yang dapat Anda gunakan dengan database untuk mendefinisikan dan menggambarkan hubungan antara dua tabel. Dalam Microsoft pencarian, Anda dapat membuat dan memanipulasi berbagai jenis bergabung. Dalam banyak kasus, Microsoft permintaan bergabung tabel dalam query Anda untuk Anda. Bergabung diwakili oleh garis yang menghubungkan Tabel di jendela tabel.

Topik yang dibahas dalam artikel ini meliputi berikut:

   What Is a Join?
   Inner Joins
   SQL Statements
   Outer Joins
   Subtract Joins
   Full Outer Joins
   Self Joins
   Equi-Joins
   Natural Joins
   Cartesian Products
				

INFORMASI LEBIH LANJUT

Apakah bergabung?

Join adalah hubungan antara dua meja di mana dua tabel digabung menurut bidang yang mereka memiliki kesamaan, membuat baru Virtual tabel (yang dapat disimpan keluar sebagai meja nyata). Sebagai contoh, dengan Berikut dua tabel:

      Color_Table:

   Join_Field   Color_Field
   1            Red
   2            Blue
   3            Green

      Pattern_Table:

   Join_Field   Pattern_Field
   2            Striped
   3            Checkered
   4            Polka-Dot
				


join sederhana menyerupai berikut ini:

   Join_Field   Color_Field      Pattern_Field
   2            Blue             Striped
   3            Green            Checkered
				


Tabel hasil berisi hanya Catatan 2 dan 3 Join_Field lapangan karena mereka hanya catatan yang ada di kedua Color_Table dan Pattern_Table.

Contoh praktis join adalah pengecer daftar produk dan produsen; meja produk dan vendor tabel dapat bergabung di lapangan ID produk.

Join dalam

Bergabung dalam contoh sebelumnya, disebut bergabung batin, adalah jenis paling sederhana dari bergabung. Biasanya, Anda ingin menggunakan hanya sebagian kecil dari bidang dalam tabel. Sebagai contoh, dalam bergabung nyata batin, seperti salah satu di atas, Anda mungkin ingin mengecualikan Join_Field, sehingga bergabung terlihat seperti ini:

   Color_Field      Pattern_Field
   Blue             Striped
   Green            Checkered
				


Dalam Microsoft permintaan, bergabung batin yang bergabung default jenis (untuk informasi lebih lanjut, lihat halaman 105 di "Microsoft Query User's Guide," Versi 1.0).

Pernyataan SQL

Pernyataan pilih Structured Query Language (SQL) adalah jenis makro yang dapat Anda gunakan ketika Anda membuat bergabung. Perhatikan bahwa SQL sangat berbeda dari Microsoft Excel makro bahasa lain (Visual Basic for Applications, dan bahasa makro Excel 4.0).

Tidak perlu memahami SQL untuk dengan mudah membuat bergabung dalam Microsoft permintaan.

Bergabung setiap pernyataan pilih terkait dengan itu. Anda dapat melihat pernyataan pilih untuk setiap bergabung dalam Microsoft permintaan dengan mengklik "SQL" di toolbar. Seperti Microsoft Excel makro perekam, Anda dapat menggunakan Query untuk merekam pilih pernyataan. Tidak seperti Microsoft Excel makro perekam, pernyataan pilih perekam selalu dan tidak dapat dimatikan. Berikut adalah bagaimana pernyataan pilih mungkin terlihat dalam Microsoft permintaan untuk bergabung dalam di atas:

   SELECT Color_Table.Color_Field, Pattern_Table.Pattern_Field
   FROM `c:\database`.Color_Table, `c:\database`.Pattern_Table
   WHERE Color_Table.Join_Field = Pattern_Table.Join_Field
				


Catatan bahwa kita menggunakan nama database 'C:\database'.mdb yang adalah file nama ekstensi untuk Microsoft Access database, yang dapat memiliki beberapa tabel dalam satu file. Dalam beberapa database lain, seperti dBASE, paradoks, dan FoxPro, meja masing-masing harus memiliki yang file sendiri. Dalam kasus ini, SQL sintaks mungkin berlebihan karena tabel nama yang selalu sama dengan nama file tanpa ekstensi.

SQL sintaks bervariasi di antara query mesin; sebagai contoh, dalam Microsoft Access permintaan dari contoh di atas menyerupai berikut ini:

   SELECT Color_Table.[Color_Field],
   Pattern_Table.Pattern_Field
   FROM Pattern_Table INNER JOIN Color_Table ON
   Pattern_Table.[Join_Field] = Color_Table.[Join_Field];
				


Jalan ke meja tidak digunakan dalam Microsoft Access karena tabel dalam Microsoft Access .mdb file. Bahkan jika tabel eksternal terpasang dan digunakan dalam pencarian, Microsoft akses SQL pernyataan tidak menampilkan jalan ke meja eksternal.



Join luar

Jenis lain bergabung disebut bergabung luar. Dengan bergabung luar, Anda mendapatkan semua catatan dari satu meja dan hanya mereka catatan dari yang lain tabel yang memiliki nilai-nilai dari meja pertama yang cocok. Ini dapat meninggalkan beberapa bidang masukan kosong, atau "Null." Untuk setiap dua tabel untuk bergabung, ada dua mungkin bergabung dengan luar, "bergabung luar kiri" dan "bergabung di luar," (begitu dinamakan karena Anda biasanya melihat tabel sisi-by-side). Menggunakan dua sebelumnya tabel dalam contoh, berikut adalah salah satu dari dua bergabung luar mungkin:

   Join_Field   Color_Field   Pattern_Field
   1            Red           (NULL)
   2            Blue          Striped
   3            Green         Checkered
				


Mungkin bergabung dengan adalah sebagai berikut:

   Join_Field   Color_Field   Pattern_Field
   2            Blue          Striped
   3            Green         Checkered
   4            (NULL)         Polka-Dot
				


Catatan: Dalam bergabung, Anda tidak melihat kata "NULL" ketika Anda melihat data; menggunakan kata kunci "NULL" ketika Anda bekerja dengan bergabung.

Dalam Microsoft permintaan, kedua jenis bergabung luar dapat dibuat dengan mudah menggunakan mouse (untuk informasi lebih lanjut tentang prosedur ini, lihat halaman 112 "Microsoft Query User's Guide," versi 1.0).

Berikut adalah bagaimana pernyataan SQL mungkin mencari contoh kedua bergabung luar:

   SELECT Color_Table.Color_Field, Pattern_Table.Pattern_Field
   FROM {oj `c:\database`.Color_Table LEFT OUTER JOIN
   `c:\database`.Pattern_Table ON Color_Table.Join_Field =
   Pattern_Table.Join_Field}
				


Untuk membuat contoh praktis bergabung luar, membuat Daftar perusahaan produk dengan angka penjualan untuk produk-produk yang telah dijual, tetapi tidak termasuk produk yang telah tidak dijual. Untuk melakukannya, gunakan Produk ID lapangan untuk bergabung meja produk dan meja penjualan.

Join pengurangan

Ketiga jenis bergabung adalah pengurangan bergabung. Join pengurangan adalah kebalikan dari luar bergabung; ini mencakup hanya catatan mereka di salah satu meja yang tidak cocok dengan catatan dalam tabel lainnya. Seperti luar bergabung, ada dua mungkin mengurangi bergabung untuk setiap dua tabel yang ingin bergabung; Namun, mereka tidak biasanya disebut sebagai "Kiri mengurangi bergabung" atau "Benar mengurangi bergabung." A mengurangi bidang biasanya kembali bergabung dari hanya satu tabel, karena oleh definisi bidang tabel lain kembali hanya nilai-nilai NULL. Berikut ini adalah satu mungkin mengurangi bergabung:

   join_Field   Color_Field
   1            Red
				


dan inilah yang lain:

   Join_Field   Pattern_Field
   4            Polka-Dot
				


Dalam Microsoft permintaan, join pengurangan dibuat oleh pertama menciptakan luar bergabung, dan kemudian menggunakan kriteria "Adalah NULL" pada sesuai bidang (Pattern_Field dalam contoh pertama di atas; Color_Field di kedua contoh) untuk mengecualikan catatan yang cocok antara meja.

The Berikut adalah bagaimana pernyataan SQL mungkin mencari bergabung pengurangan pertama di atas:

   SELECT Color_Table.Join_Field, Color_Table.Color_Field
   FROM {oj `c:\database`.Color_Table LEFT OUTER JOIN
   `c:\database`.Pattern_Table ON Color_Table.Join_Field =
   Pattern_Table.Join_Field}
   WHERE (Pattern_Table.Pattern_Field Is Null)
				


Untuk membuat contoh praktis bergabung pengurangan, daftar pelanggan yang tidak dipesan baru-baru ini. Untuk melakukannya, gunakan ID Order lapangan untuk bergabung meja pelanggan dan pesanan meja.

Penuh luar bergabung

Keempat semacam bergabung adalah bergabung penuh luar. Join penuh luar adalah kombinasi dari luar bergabung dengan bergabung gratis pengurangan. Penuh luar bergabung termasuk Record dari tabel kedua dan menggabungkan mereka mencatat bahwa umum antara dua tabel. Berikut ini adalah bergabung penuh luar:

   Join_Field   Color_Field   Pattern_Field
   1            Red           (NULL)
   2            Blue          Striped
   3            Green         Checkered
   4            (NULL)        Polka-Dot
				




Dalam Microsoft permintaan, join penuh luar dibuat dengan memasukkan operator Uni garis sendiri antara bergabung luar pilih pernyataan dan bergabung dengan pengurangan Pilih pernyataan (lihat di atas).

Untuk membuat penuh luar bergabung dalam permintaan Microsoft, gunakan langkah-langkah berikut untuk membuat kalimat SQL sesuai:

  1. Membuat bergabung luar, lalu klik baru pada menu berkas dan membuat pengurangan bergabung.
  2. Salin bergabung dengan pengurangan SQL.
  3. Beralih ke luar bergabung, ketik kata Uni sendiri baris di bawah bergabung luar pernyataan SQL, paste SQL bergabung dengan pengurangan di bawah ini kata UNION, dan menutup jendela bergabung dengan pengurangan.
Catatan Hasil dari tabel berikut kehilangan Join_Field nilai "4" karena catatan bahwa Join_Field's nilai sama dengan 4 dalam tabel Pattern_Table. Di bawah SQL kalimat dones't pilih bidang Pattern_Table.John_Field.

   Join_Field   Color_Field   Pattern_Field
                (NULL)        Polka-Dot
   1            Red           (NULL)
   2            Blue          Striped
   3            Green         Checkered
				


Berikut adalah bagaimana SQL mungkin mencari lengkap luar bergabung di atas (perintah di bawah operator Uni yang disisipkan):

   SELECT Color_Table.Join_Field, Color_Table.Color_Field,
   Pattern_Table.Pattern_Field
   FROM {oj `C:\database`.Pattern_Table LEFT OUTER JOIN
   `C:\database`.Color_Table ON Color_Table.Join_Field =
   Pattern_Table.Join_Field}
   UNION
   SELECT Color_Table.Join_Field, Color_Table.Color_Field,
   Pattern_Table.Pattern_Field
   FROM {oj `C:\database`.Color_Table LEFT OUTER JOIN
   `C:\database`.Pattern_Table ON Color_Table.Join_Field =
   Pattern_Table.Join_Field}
   WHERE (Color_Table.Color_Field Is Null)  or(Pattern_Table.Pattern_Field Is Null)
				


Untuk membuat contoh praktis join penuh luar, menggabungkan tumpang tindih daftar pelanggan yang digunakan oleh departemen yang berbeda, termasuk faks angka (yang hanya pada daftar pertama), dan nama-nama Internet e-mail (yang yang hanya dalam daftar kedua). Masing-masing departemen bisa terus menggunakan parsial yang Daftar sementara memiliki lengkap, bergabung dengan daftar tersedia. Mereka bisa bergabung pada lapangan ID pelanggan.

Self-Join

Kelima semacam bergabung adalah self-join. Self-join adalah sambungan di mana lapangan dalam tabel cocok dengan bidang yang berbeda dalam salinan dari meja yang sama. Menggunakan tabel contoh ini:

      Table_Three

   Employee_ID   Employee_Name   Reports_To
   1             Bob             3
   2             Sue             (NULL)
   3             Jim             2
   4             Jane            3
				


dan salinan itu, sebagai berikut:

      Table_Three_01

   Employee_ID   Employee_Name   Reports_To
   1             Bob             3
   2             Sue             (NULL)
   3             Jim             2
   4             Jane            3
				


Self-join dapat digunakan untuk membuat daftar karyawan nama dengan nama-nama pengawas mereka. Employee_ID di Table_Three akan bergabung dengan Reports_To di Table_Three_01. Berikut adalah bagaimana mungkin Lihatlah pertama:

   Employee_Name   Employee_Name
   Bob             Jim
   Sue             (NULL)
   Jim             Sue
   Jane            Jim
				


Namun, karena membingungkan untuk memiliki bidang yang sama nama untuk kedua bidang, mengubah salah satu nama kolom, sebagai berikut:

   Employee_Name   Supervisor
   Bob             Jim
   Sue             (NULL)
   Jim             Sue
   Jane            Jim
				


Berikut adalah bagaimana SQL mungkin mencari di atas Self-Join:

   SELECT table_three.Employee_Name,
   table_three_01.Employee_Name 'Supervisor'
   FROM `c:\database`.table_three, `c:\database`.table_three_01
   WHERE table_three.Employee_ID = table_three_01.Reports_To
				


Ketika Anda mengembalikan data ke Microsoft Excel, sangat tidak menggunakan untuk mengubah nama field dalam Microsoft permintaan. Ini benar karena Microsoft Excel menggunakan nama field yang asli. Untuk informasi lebih lanjut tentang masalah ini, Silakan lihat artikel berikut pada Basis Pengetahuan Microsoft:

121551  (http://support.microsoft.com/kb/121551/EN-US/ ) : XL5: bidang bukan Nama kolom di MSQUERY kembali ke Excel

Microsoft Excel makro harus mengubah nama kolom setiap kali data yang dikembalikan refresh (kecuali Anda kembali data dalam sebuah PivotTable, kasus Pivot itu sendiri dapat membuat dan menjaga nama bidang kustom).

Equi-Join dan bergabung alam

Hampir semua bergabung, termasuk semua contoh-contoh yang diberikan sejauh ini, yang Equi-bergabung dan bergabung alami. Makna dari istilah-istilah ini adalah sedikit signifikansi untuk pengguna rata-rata dari Microsoft Query, tapi dua paragraf berupaya menjelaskan istilah untuk orang-orang yang mungkin ingin tahu.

Equi-bergabung adalah bergabung dalam catatan yang diperoleh berdasarkan Apakah bidang bergabung memiliki nilai-nilai yang sesuai dalam tabel kedua. Yang mungkin tampak seperti hanya definisi bergabung, tapi itu tidak. Contoh non-sama bergabung adalah bergabung di mana catatan dalam tabel pertama bergabung dengan catatan mereka di kedua meja di mana bidang bergabung di meja pertama lebih besar daripada (bukannya sama dengan) bidang bergabung dalam tabel kedua (atau kurang, atau apa pun Selain itu sama dengan). Tentu saja, ini kembali lebih banyak rekod dari equi-bergabung.

Join alam adalah salah satu yang hanya salah satu dari dua tabel bergabung bidang kembali. Karena kedua bidang secara definisi yang identik dalam Equi-bergabung, itu berlebihan untuk memasukkan kedua. Untuk bergabung dengan non-sama, penting untuk memasukkan kedua bidang tersebut. Jadi, equi-bergabung dan alami bergabung pergi bersama-sama. Anda akan ingin bergabung equi (yang menggambarkan kebanyakan bergabung) menjadi alam bergabung dengan kembali hanya salah satu bidang bergabung; Tapi, jika Anda pernah menggunakan bergabung dengan non-sama, Anda mungkin juga ingin membuat non-natural bergabung dengan kembali Kedua bidang bergabung.

Terdapat jenis lain dari bergabung. Penuh spektrum bergabung paling baru-baru ini ditetapkan pada tahun 1992 dan standar ini dikenal sebagai SQL-92. Beberapa bergabung tidak penting bagi pengguna Microsoft Excel karena ini bergabung melakukan hal-hal yang lebih mudah untuk dilakukan di Microsoft Excel.

Produk Kartesius

Mencoba untuk mengembalikan data dari dua atau lebih tabel tanpa bergabung setiap menciptakan apa yang disebut "Produk Kartesius." Produk Kartesius didefinisikan sebagai semua kemungkinan kombinasi dari baris dalam semua tabel. Pastikan Anda telah bergabung sebelum mencoba untuk mengembalikan data, karena produk Kartesius meja dengan banyak catatan dan/atau pada banyak tabel dapat mengambil beberapa jam untuk menyelesaikan. Berikut adalah Kartesius produk seperti yang digunakan pada tabel dua contoh; Perhatikan bahwa tabel ini Catatan hanya 3 kali 3 Catatan, yang menghasilkan total 9 Catatan. Namun, Bayangkan jika sebaliknya, tabel catatan 100 kali Catatan 1.000 kali 10.000 Catatan; kemudian tabel akan berisi catatan 1,000,000,000!

   Join_Field   Join_Field   Color_Field   Pattern_Field
   1            2            Red           Striped
   1            3            Red           Checkered
   1            4            Red           Polka-Dot
   2            2            Blue          Striped
   2            3            Blue          Checkered
   2            4            Blue          Polka-Dot
   3            2            Green         Striped
   3            3            Green         Checkered
   3            4            Green         Polka-Dot
				


Kadang-kadang, beberapa pengguna ingin menggunakan Cartesian produk; Namun, sebagian besar pengguna yang mendapatkan mereka melakukannya secara tidak sengaja, dan sering bingung dengan mereka. Karena sebagian besar pengguna mengecualikan sebagian besar bidang dalam join, produk Kartesius nyata dapat dengan mudah terlihat sebagai membingungkan seperti ini:

   Color_Field
   Red
   Red
   Red
   Blue
   Blue
   Blue
   Green
   Green
   Green
				


Jika 100 Record ditambahkan ke Pattern_Table, query ini akan memiliki 309 catatan (103 catatan masing-masing merah, biru dan hijau).

Cartesian produk memiliki pernyataan pilih yang relatif sederhana. Berikut ini adalah Bagaimana SQL mungkin mencari produk Kartesius di atas:

   SELECT Color_Table.Color_Field, Pattern_Table.Pattern_Field
   FROM `c:\database`.Color_Table, `c:\database`.Pattern_Table
				


Contoh praktis Kartesius produk akan membuat daftar semua kemungkinan kombinasi pilihan pada produk barang dagangan, dengan harga total untuk setiap kombinasi.

REFERENSI

Microsoft Query "User's Guide," versi 1.0, halaman 101-114, 123-131

Berikut dua buku tidak disertakan dengan setiap Microsoft produk dan yang tidak diproduksi oleh Microsoft.

Produk pihak ketiga dibahas di sini dibuat oleh vendor yang independen terhadap Microsoft; Kami membuat tidak ada garansi, secara tersirat maupun, mengenai produk ini kinerja atau kehandalan.

"Memahami SQL baru: panduan lengkap," Morgan Kaufmann Publishers, Inc., 1993.

"Joe Celko SQL untuk Smarties: Lanjutan SQL pemrograman,"Morgan Kaufmann Publishers, Inc., 1995.

Untuk informasi lebih lanjut tentang menciptakan bergabung dalam Microsoft permintaan, pilih pencarian tombol pada bantuan dan ketik:

   joins, overview
				

Berlaku bagi:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel X for Mac
  • Microsoft Excel 2001 for Mac
  • Microsoft Excel 98 for Macintosh
Kata kunci: 
kbinfo kbhowto kbmt KB136699 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:136699  (http://support.microsoft.com/kb/136699/en-us/ )