Gabung Dalam vs Gabung Luar
Gabungan dalam dan Gabungan luar adalah dua metode gabungan SQL yang digunakan dalam pemrosesan kueri untuk basis data. Mereka milik keluarga klausa bergabung (dua lainnya adalah Kiri dan Kanan Bergabung). Namun, ada Self Join yang dapat digunakan untuk situasi khusus. Tujuan Bergabung adalah untuk menggabungkan bidang menggunakan nilai-nilai umum ke dua tabel. Gabungan ini menggabungkan catatan dari beberapa tabel dalam database. Ini menciptakan set resultan, yang dapat disimpan sebagai tabel lain.
Apa itu Inner Join??
Operasi SQL Join yang paling umum digunakan adalah Inner Join. Ini dapat dianggap sebagai tipe default dari join yang digunakan dalam aplikasi. Gabung dalam menggunakan predikat gabung untuk menggabungkan dua tabel. Dengan asumsi kedua tabel tersebut adalah A dan B, maka predikat gabungan akan membandingkan baris A dan B untuk mengetahui semua pasangan yang memenuhi predikat tersebut. Nilai kolom dari semua baris puas dari tabel A dan B digabungkan untuk membuat hasilnya. Hal ini dapat dilihat pada saat pertama kali mengambil cross join (produk Cartesian) dari semua catatan dan kemudian mengembalikan hanya catatan yang memenuhi predikat gabungan. Namun, pada kenyataannya, produk Cartesian tidak dihitung karena sangat tidak efisien. Hash join atau sort-gabungan bergabung digunakan, sebagai gantinya.
Apa itu Outer Join??
Tidak seperti, gabung dalam, gabung luar menyimpan semua catatan bahkan jika itu tidak dapat menemukan catatan yang cocok. Itu berarti gabung luar memang membutuhkan catatan untuk menemukan catatan yang cocok agar muncul di hasil. Sebagai gantinya, itu akan mengembalikan semua catatan, tetapi catatan yang tidak cocok akan memiliki nilai nol. Gabungan luar dibagi menjadi tiga sub kategori. Mereka adalah join luar kiri, join luar kanan dan join luar penuh. Diferensiasi ini didasarkan pada baris mana tabel (tabel kiri, tabel kanan atau kedua tabel) dipertahankan ketika catatan yang tidak cocok ditemukan. Gabungan luar kiri (juga dikenal sebagai gabung kiri saja) menyimpan semua catatan dari tabel kiri. Itu berarti, bahkan jika jumlah pencocokan catatan adalah nol, maka masih akan memiliki catatan dalam tabel hasil, tetapi akan memiliki nilai nol untuk semua kolom B. Dengan kata lain, semua nilai dari tabel kiri dikembalikan dengan nilai yang cocok dari kanan tabel (atau nilai nol saat tidak cocok). 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 kanan cukup mirip dengan gabung luar kiri, tetapi perawatan tabel dihormati. Itu berarti hasilnya akan memiliki semua baris tabel kanan setidaknya sekali dengan nilai tabel kiri yang cocok (dan nilai nol untuk nilai kanan yang tidak cocok). Gabungan luar penuh lebih komprehensif daripada gabungan luar kiri dan kanan. Ini hasil dalam menggabungkan efek menerapkan kedua bagian luar kiri dan kanan bergabung bersama.
Apa perbedaan antara Inner Join dan Outer Join?
Inner Join tidak menyimpan baris yang tidak cocok dalam hasilnya, tetapi join luar akan menyimpan semua catatan dari setidaknya satu tabel (tergantung pada join luar yang telah digunakan). Jadi, perilaku tidak memiliki informasi hadir pada baris yang tidak cocok di tabel hasil tidak diinginkan, Anda harus selalu menggunakan salah satu gabungan luar (sebagai gantinya penggabungan dalam). Gabungan dalam mungkin tidak menghasilkan hasil jika tidak ada kecocokan yang ditemukan. Tetapi join luar akan selalu menghasilkan tabel yang dihasilkan, bahkan tanpa baris yang cocok. Gabung dalam akan selalu mengembalikan tabel dengan nilai (jika dikembalikan). Tetapi gabungan luar dapat menghasilkan tabel dengan nilai nol.