Inner Join vs. Sertai luar
- 3129
- 49
- David Collier
Di SQL, a menyertai digunakan untuk membandingkan dan menggabungkan - secara literal menyertai - dan mengembalikan baris data tertentu dari dua atau lebih jadual dalam pangkalan data. An gabungan dalaman mencari dan mengembalikan data yang sepadan dari jadual, sementara Sertai luar mencari dan mengembalikan data yang sepadan dan beberapa data yang berbeza dari jadual.
Gabungan dalaman
Sertai dalaman memberi tumpuan kepada kesamaan antara dua jadual. Apabila menggunakan gabungan dalaman, terdapat sekurang -kurangnya beberapa data yang sepadan antara dua (atau lebih) jadual yang sedang dibandingkan. Jadual Carian Join Inner untuk data yang sepadan atau bertindih. Setelah mencarinya, gabungan dalaman menggabungkan dan mengembalikan maklumat ke dalam satu jadual baru.
Contoh gabungan dalaman
Mari kita pertimbangkan senario biasa dua jadual: harga dan kuantiti produk. Maklumat biasa dalam kedua -dua jadual adalah nama produk, jadi itu adalah lajur logik untuk menyertai jadual pada. Terdapat beberapa produk yang biasa dalam kedua -dua jadual; Yang lain unik untuk salah satu meja dan tidak mempunyai pertandingan di meja lain.
Batin dalam bergabung Produk Mengembalikan maklumat mengenai hanya produk yang biasa di kedua -dua jadual.
Sertai luar
Sertai luar mengembalikan satu set rekod (atau baris) yang termasuk apa yang gabungan dalaman akan kembali tetapi juga termasuk baris lain yang tidak ada perlawanan yang sepadan dalam jadual lain.
Terdapat tiga jenis gabungan luar:
- Kiri Kiri Bergabung (atau Kiri Sertai)
- Sertai luar yang betul (atau sertai kanan)
- Gabungan luar penuh (atau sertai penuh)
Setiap gabungan luar ini merujuk kepada bahagian data yang sedang dibandingkan, digabungkan, dan dikembalikan. Kadang -kadang nulls akan dihasilkan dalam proses ini kerana beberapa data dikongsi sementara data lain tidak.
Kiri luar bergabung
Sertai luar kiri akan mengembalikan semua data dalam Jadual 1 dan semua data yang dikongsi (jadi, bahagian dalam contoh gambarajah Venn), tetapi hanya data yang sepadan dari Jadual 2, yang merupakan penyertaan yang betul.
Kiri Join Contoh
Dalam pangkalan data contoh kami, terdapat dua produk - oren dan tomato - di 'kiri' (Harga Jadual) yang tidak mempunyai entri yang sepadan pada 'kanan' (jadual kuantiti). Di sebelah kiri, baris ini dimasukkan ke dalam hasil yang ditetapkan dengan null dalam lajur kuantiti. Barisan lain dalam hasilnya adalah sama dengan gabungan dalaman.
Sertai luar kanan
Join Out yang betul Pulangan data Jadual 2 dan semua data yang dikongsi, tetapi hanya data yang sepadan dari Jadual 1, yang merupakan gabungan kiri.
Contoh sertai yang betul
Sama seperti contoh gabungan kiri, output gabungan luar kanan merangkumi semua baris gabungan dalaman dan dua baris - brokoli dan skuasy - dari 'kanan' (Kuantiti Jadual) yang tidak mempunyai penyertaan yang sepadan di sebelah kiri.
Sertai luar penuh
Gabungan luar penuh, atau gabungan penuh, iaitu tidak disokong oleh sistem pengurusan pangkalan data MySQL yang popular, menggabungkan dan mengembalikan semua data dari dua atau lebih jadual, tanpa mengira sama ada terdapat maklumat bersama. Fikirkan gabungan penuh sebagai hanya menduplikasi semua maklumat yang ditentukan, tetapi dalam satu jadual, bukannya beberapa jadual. Di mana data yang sepadan hilang, nulls akan dihasilkan.
Ini hanya asas -asas, tetapi banyak perkara yang boleh dilakukan dengan bergabung. Malah ada gabungan yang boleh mengecualikan gabungan lain!
Video yang menerangkan dalaman vs luar bergabung
Video ini menerangkan perbezaan antara pelbagai jenis gabungan. Ia akan bermula pada titik di mana perbincangan mengenai gabungan bermula.