Sertai Dalaman vs Sambungan Luar
Sambungan dalam dan sambung Luar ialah dua daripada kaedah sambung SQL yang digunakan dalam pemprosesan pertanyaan untuk pangkalan data. Mereka tergolong dalam keluarga klausa cantuman (dua lagi ialah Cantuman Kiri dan Kanan). Walau bagaimanapun, terdapat Self Join yang boleh digunakan untuk situasi khusus. Tujuan Join adalah untuk menggabungkan medan menggunakan nilai sepunya kepada dua jadual. Gabungan ini menggabungkan rekod daripada berbilang jadual dalam pangkalan data. Ia menghasilkan set terhasil, yang boleh disimpan sebagai jadual lain.
Apakah itu Inner Join?
Operasi SQL Join yang paling biasa digunakan ialah Inner Join. Ia boleh dianggap sebagai jenis gabungan lalai yang digunakan dalam aplikasi. Cantuman dalam menggunakan gabungan-predikat untuk menggabungkan dua jadual. Dengan mengandaikan kedua-dua jadual ialah A dan B, maka gabungan-predikat akan membandingkan baris A dan B untuk mengetahui semua pasangan yang memenuhi predikat. Nilai lajur semua baris yang berpuas hati bagi jadual A dan B digabungkan untuk mencipta hasil. Ia boleh dilihat sebagai mula-mula mengambil cantuman silang (produk Cartesian) semua rekod dan kemudian mengembalikan hanya rekod yang memenuhi predikat cantum. Walau bagaimanapun, pada hakikatnya, produk Cartesian tidak dikira kerana ia sangat tidak cekap. Hash join atau sort-cantum join digunakan.
Apakah itu Outer Join?
Tidak seperti, Cantuman dalam, cantuman luar menyimpan semua rekod walaupun ia tidak menemui rekod yang sepadan. Ini bermakna gabungan luar memerlukan rekod untuk mencari rekod yang sepadan untuk ia muncul dalam keputusan. Sebaliknya, ia akan mengembalikan semua rekod, tetapi rekod yang tidak sepadan akan mempunyai nilai nol. Cantuman luar dibahagikan kepada tiga subkategori. Ia adalah sambung luar kiri, sambung luar kanan dan sambung luar penuh. Pembezaan ini adalah berdasarkan baris jadual (jadual kiri, jadual kanan atau kedua-dua jadual) yang dikekalkan apabila rekod tidak sepadan ditemui. Cantuman luar kiri (juga dikenali sebagai cantuman kiri) mengekalkan semua rekod jadual kiri. Ini bermakna, walaupun rekod padanan nombor adalah sifar, maka ia masih akan mempunyai rekod dalam jadual hasil, tetapi akan mempunyai nilai nol untuk semua lajur B. Dalam erti kata lain, semua nilai dari jadual kiri dikembalikan dengan nilai sepadan dari kanan jadual (atau nilai nol apabila tidak dipadankan). Jika nilai daripada berbilang baris dari jadual kiri dipadankan dengan satu baris dari jadual kanan, baris dari jadual kanan akan diulang seperti yang diperlukan. Cantuman luar kanan hampir serupa dengan cantuman luar kiri, tetapi rawatan terhadap jadual dihormati. Ini bermakna hasilnya akan mempunyai semua baris jadual kanan sekurang-kurangnya sekali dengan nilai jadual kiri dipadankan (dan nilai nol untuk nilai kanan tidak sepadan). Cantuman luar penuh adalah lebih menyeluruh daripada cantuman luar kiri dan kanan. Ia menghasilkan gabungan kesan penggunaan kedua-dua bahagian luar kiri dan kanan bercantum bersama.
Apakah perbezaan antara Sambungan Dalam dan Sambungan Luar?
Inner Join tidak menyimpan baris yang tidak sepadan dalam hasil, tetapi gabungan luar akan menyimpan semua rekod daripada sekurang-kurangnya satu jadual (bergantung pada cantuman luar yang telah digunakan). Oleh itu, tingkah laku tidak mempunyai maklumat pada baris yang tidak sepadan dalam jadual hasil adalah tidak diingini, anda perlu sentiasa menggunakan salah satu cantuman luar (sebagai ganti cantuman dalam). Gabungan dalaman mungkin tidak menghasilkan keputusan jika tiada padanan ditemui. Tetapi cantuman luar akan sentiasa menghasilkan jadual terhasil, walaupun tanpa baris yang sepadan. Gabungan dalaman akan sentiasa mengembalikan jadual dengan nilai (jika dikembalikan). Tetapi cantuman luar boleh menghasilkan jadual dengan nilai nol.