Perbedaan Antara Ganda Masuk dan Gabung Luar

Anonim

Bergabung Dalam Gabung vs Outer Join

Bergabung batin dan bergabung lah adalah dua metode bergabung SQL yang digunakan dalam pemrosesan kueri untuk basis data. Mereka termasuk dalam keluarga klausa bergabung (dua lainnya adalah Kiri dan Kanan Bergabung). Namun, ada Self Join yang bisa digunakan untuk situasi khusus. Tujuan Join adalah menggabungkan field dengan menggunakan nilai umum ke dua tabel. Ini menggabungkan catatan dari beberapa tabel dalam database. Ini menciptakan set resultan, yang bisa disimpan sebagai meja lain.

Apa itu Inner Join?

Operasi Join Join yang paling umum digunakan adalah Inner Join. Ini bisa dianggap sebagai tipe default join yang digunakan pada aplikasi. Inner join menggunakan join-predicate untuk menggabungkan dua tabel. Dengan mengasumsikan dua tabel tersebut adalah A dan B, maka predikat join akan membandingkan deretan A dan B untuk mengetahui semua pasangan yang memenuhi predikat. Nilai kolom dari semua baris tabel A dan B yang puas digabungkan untuk menciptakan hasilnya. Hal ini dapat dilihat sebagai pertama mengambil salib bergabung (Cartesian produk) dari semua catatan dan kemudian kembali hanya catatan yang memenuhi bergabung-predikat. Namun, pada kenyataannya, produk Cartesian tidak dihitung karena sangat tidak efisien. Hash join atau sort-gabung join digunakan, sebagai gantinya.

Apa itu Outer Join ?

Tidak seperti, Inner join, outer join menyimpan semua catatan meskipun tidak dapat menemukan rekaman yang sesuai. Itu berarti outer join memang membutuhkan catatan untuk menemukan rekaman yang cocok agar bisa tampil di hasilnya. Sebagai gantinya, ia akan mengembalikan semua catatan, tapi catatan yang tak tertandingi akan memiliki nilai null. Outer bergabung dibagi ke dalam tiga sub kategori. Mereka dibiarkan join luar, join luar kanan dan full outer join. Diferensiasi ini didasarkan pada tabel tabel (tabel kiri, kanan tabel atau kedua tabel) yang tersisa saat catatan tak tertandingi ditemukan. Kiri luar bergabung (juga dikenal sebagai hanya kiri bergabung) mempertahankan semua catatan dari tabel kiri. Itu berarti, bahkan jika jumlah record yang cocok adalah nol, maka akan tetap ada record di tabel hasil, namun akan memiliki nilai null untuk semua kolom B. Dengan kata lain, semua nilai dari tabel kiri dikembalikan dengan nilai yang sesuai dari kanan. tabel (atau nilai null saat tidak ada bandingannya). Jika nilai dari beberapa baris dari tabel kiri dicocokkan dengan satu baris dari tabel kanan, baris dari tabel kanan akan diulang sesuai kebutuhan. Gabung luar yang benar cukup mirip dengan outer join kiri, tapi perawatan tabel dipuja. Itu berarti hasilnya akan memiliki semua baris tabel kanan setidaknya satu kali dengan nilai tabel kiri yang sesuai (dan nilai null untuk nilai kanan yang tidak sesuai). Full outer join lebih komprehensif daripada kedua kiri dan kanan luar bergabung. Ini menghasilkan kombinasi efek penerapan kedua sisik kiri dan kanan yang tergabung bersama.

Apa perbedaan antara Inner Join dan Outer Join?

Inner Join tidak menyimpan baris yang tak tertandingi hasilnya, tapi outer join akan menyimpan semua catatan dari setidaknya satu tabel (tergantung pada outer join mana yang telah digunakan). Jadi, perilaku agar tidak ada informasi yang hadir pada baris yang tidak ada bandingannya di tabel hasil tidak diinginkan, Anda harus selalu menggunakan salah satu dari join luar (menggantikan join batin). Penggabungan batin mungkin tidak menghasilkan hasil jika tidak ada yang cocok ditemukan. Tapi outer join akan selalu menghasilkan tabel resultan, meski tanpa baris yang serasi. Inner join akan selalu mengembalikan tabel dengan nilai (jika dikembalikan). Tapi join luar bisa menghasilkan tabel dengan nilai null.