Sertai Dalaman berbanding Sertai Luar

Dalam SQL, gabungan digunakan untuk membandingkan dan menggabungkan - secara literal menyertai - dan mengembalikan baris tertentu data dari dua atau lebih jadual dalam pangkalan data. Gabungan batin mencari dan mengembalikan data yang sepadan dari jadual, manakala gabungan luar mendapati dan mengembalikan data yang sepadan dan beberapa data yang tidak sepadan dari jadual.

Sertai dalaman

Gabungan batin memberi tumpuan kepada kesamaan antara dua jadual. Apabila menggunakan gabungan dalaman, mesti ada sekurang-kurangnya beberapa data yang hampir sama antara dua (atau lebih) jadual yang sedang dibandingkan. Melampirkan jadual carian untuk data padanan atau tumpang tindih. Apabila mencari, gabungan dalaman menggabungkan dan mengembalikan maklumat ke dalam satu jadual baru.

Contoh Dalaman Masuk

Mari kita pertimbangkan satu senario biasa dua jadual: harga dan kuantiti produk. Maklumat lazim dalam kedua-dua jadual adalah nama produk, jadi lajur logik untuk menyertai jadual. Terdapat beberapa produk yang lazim dalam kedua-dua jadual; yang lain adalah unik untuk salah satu jadual dan tidak mempunyai perlawanan dalam jadual lain.

Sambungan dalaman pada Produk mengembalikan maklumat tentang hanya produk yang biasa di kedua-dua jadual.

Sertai Luar

Sambungan luar mengembalikan satu set rekod (atau baris) yang merangkumi apa yang ada dalam batin akan kembali tetapi juga termasuk baris lain yang tidak ada padanan yang sama di dalam jadual lain.

Terdapat tiga jenis kelebihan luar:

  • Left Outer Join (atau Sertai Kiri)
  • Sertai Luar Tua (atau Sertai Yang Benar)
  • Sertai Outer Penuh (atau Sertai Penuh)

Setiap gabungan luar merujuk kepada bahagian data yang sedang dibanding, digabungkan, dan dikembalikan. Kadang-kadang batal akan dihasilkan dalam proses ini kerana sesetengah data dikongsi sementara data lain tidak.

Left Outer Join

Gabungan luar kiri akan mengembalikan semua data dalam Jadual 1 dan semua data yang dikongsi (jadi, bahagian dalaman contoh rajah Venn), tetapi hanya data yang sepadan dari Jadual 2, yang merupakan gabungan yang betul.

Kiri Sertai Contoh

Dalam pangkalan data contoh kami, terdapat dua produk - jeruk dan tomato - di 'kiri' (Jadual harga ) yang tidak mempunyai entri yang sepadan pada 'kanan' (jadual kuantiti). Di sebelah kiri, baris ini dimasukkan ke dalam keputusan yang ditetapkan dengan NULL dalam lajur Kuantiti. Baris yang lain dalam hasilnya adalah sama dengan gabungan dalaman.

Sertai Luar Tepat

Sambungan luar kanan mengembalikan data Jadual 2 dan semua data yang dikongsi, tetapi hanya data yang sepadan dari Jadual 1, yang merupakan gabungan kiri.

Contoh Gabungan Kanan

Sama seperti contoh menyertai kiri, output dari bahagian luar yang betul termasuk semua baris dalam batin dan dua baris - brokoli dan squash - dari 'kanan' (jadual kuantiti ) yang tidak mempunyai entri sepadan di sebelah kiri.

Sertai Luar Penuh

Gabungan luar penuh, atau gabungan penuh, yang 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 yang dikongsi. Fikirkan gabungan penuh kerana hanya menduplikasi semua maklumat yang ditentukan, tetapi dalam satu jadual, bukannya beberapa jadual. Jika data padanan hilang, batal akan dihasilkan.

Ini hanya asas, tetapi banyak perkara boleh dilakukan dengan bergabung. Terdapat juga gabungan yang boleh menolak pengecualian lain!

Video Menjelaskan Inner vs Outer Joins

Video ini menerangkan perbezaan antara pelbagai jenis gabungan. Ia bersesuaian untuk bermula pada titik di mana perbincangan mengenai bergabung bermula.

Artikel Berkaitan