Direkomendasikan, 2023

Pilihan Editor

Perbedaan Antara Gabung Kiri, Kanan dan Penuh

Sebelumnya kami telah membahas perbedaan antara Gabung Dalam dan Gabung Luar, di mana kami telah mengulas jenis Gabung Luar. Outer Join adalah orang yang menjaga tuple dalam hasil yang akan hilang saat operasi Join. Dalam artikel ini; kita akan membahas perbedaan antara jenis-jenis Outer Join. Ada tiga jenis Outer Join; Gabung Luar Kiri, Gabung Luar Kanan, dan Gabung Luar Penuh. Gabung Luar Kiri, Kanan, dan Penuh berbeda dalam rencana eksekusi mereka, dan hasil yang diperoleh. Kita dapat menghilangkan kata Luar dari Kiri, Kanan, dan Gabung Luar Penuh. Mari kita periksa perbedaan antara Kiri, Kanan dan Penuh luar Gabung dengan bantuan grafik perbandingan yang ditunjukkan di bawah ini.

Grafik perbandingan

Dasar untuk PerbandinganKiri Luar GabungGabung Luar KananGabung Luar Penuh
DasarSemua tupel dari tabel kiri tetap di hasil.Semua tupel dari tabel kanan tetap di hasil.Semua tupel dari kiri serta meja kanan tetap ada di hasilnya.
Ekstensi NULLTupel tabel kiri yang tidak memiliki tupel yang cocok di tabel kanan diperpanjang dengan nilai NULL untuk atribut dari tabel kanan.Tupel tabel kanan yang tidak memiliki tupel yang cocok di tabel kiri diperpanjang dengan nilai NULL untuk atribut dari tabel kiri.
Tupel kiri dan tabel kanan yang tidak memiliki tupel yang cocok di tabel kanan dan kiri masing-masing diperpanjang dengan nilai NULL untuk atribut tabel kanan dan kiri.

Definisi Left Outer Join

Misalkan kita memiliki, " Table_A Left Outer Join Table_B ". Jadi Table_A adalah tabel kiri kita karena tampak di sebelah kiri operasi Outer Outer Join dan Table_B adalah tabel kanan kita.

Awalnya, gabungan dalam akan diterapkan pada Table_A dan Table_B yang akan mengembalikan semua tuple yang cocok dari tabel A dan B.

Selanjutnya, itu akan mengembalikan semua tupel dari Table_A yang tidak memiliki tupel yang cocok di Table_B. Seperti itu, tupel yang dihasilkan akan diisi dengan nilai NULL untuk atribut tabel yang benar.

Oleh karena itu, hasil yang diperoleh dari Left Outer Join mempertahankan semua tupel dari tabel kiri dan hanya tupel yang cocok dari tabel kanan.

Mari kita bahas Left Outer Join dengan sebuah contoh; kami memiliki dua tabel di bawah ini, Tabel Siswa dan Tabel Departemen .

Sekarang, kita akan menerapkan Left Outer Join, di Student and Department Table.

PILIH * DARI LEFT OUTER Mahasiswa GABUNG Departemen
ON Student. Student_ID = Department.Student_ID

Dalam kueri di atas, tabel Siswa adalah tabel kiri dan tabel Departemen adalah tabel kanan. Jadi menurut Left Outer Join, hasilnya harus memiliki semua tuple dari tabel Student, dan hanya tuple yang cocok dari tabel Department.

Amati hasil yang diperoleh dari Left Outer Join; ia memiliki semua tupel dari tabel Siswa bersama dengan tupel yang cocok dari tabel Mahasiswa dan Departemen. Student_id dari Jimmy, Joseph Harry dari tabel Student tidak ada di tabel Department. Oleh karena itu, nilai atribut dari tabel Department untuk Jimmy, Joseph Harry diperluas ke NULL.

Definisi Right Outer Join

Misalkan kita memiliki, " Table_A Right Outer Join Table_B ". Jadi Table_A adalah tabel kiri kita karena tampak di sebelah kiri operasi Right Outer Join dan Table_B adalah tabel kanan kita.

Seperti di Left Outer Join, awalnya, inner join akan diterapkan pada Table_A dan Table_B yang akan mengembalikan semua tuple yang cocok dari tabel A dan B.

Selanjutnya, ini akan mengembalikan semua tupel dari Table_B yang tidak memiliki tupel yang cocok di Table_A. Seperti itu, tupel yang dihasilkan akan diisi dengan nilai NULL untuk atribut tabel kiri.

Oleh karena itu, hasil yang diperoleh dari gabungan luar kanan mempertahankan semua tupel dari tabel kanan dan hanya tupel yang cocok dari tabel kiri.

Mari kita bahas Right Outer Join dengan sebuah contoh; di atas kami memiliki dua tabel, Tabel Siswa dan Tabel Departemen.

Sekarang, kita akan menerapkan Right Outer Join ke tabel Student dan tabel Department.

PILIH * DARI GARIS LUAR BAGIAN Mahasiswa
ON Student. Student_ID = Department.Student_ID

Dalam kueri di atas, Tabel Siswa adalah Tabel Kiri kami dan Tabel Departemen adalah tabel kanan kami. Menurut operasi Right Outer Join, hasilnya harus mencakup semua tupel dari tabel Departemen dan hanya tupel yang cocok dari Tabel Siswa.

Amati hasil yang diperoleh dari right outer join; ia memiliki semua tupel dari tabel Departemen bersama dengan tupel yang cocok dari tabel Mahasiswa dan Departemen. Student_ID 10536 dan 00954, dari tabel Department, tidak ada dalam tabel Student. Oleh karena itu, nilai atribut Name for Student_ID 10536 dan 00954 diperluas ke NULL.

Definisi Full Outer join

Misalkan kita memiliki, " Table_A Full Outer Join Table_B ". Jadi Table_A adalah tabel kiri kita karena tampak di sebelah kiri dari operasi Full Outer Join dan Table_B adalah tabel kanan kita.

Full Outer Join adalah kombinasi keduanya, Left Outer Join dan Right Outer Join . Awalnya, ini berlaku gabungan internal pada Table_A dan Table_B untuk mengambil tupel yang cocok dari kedua tabel. Kemudian ia memperpanjang tuple dari Table_A dengan NULL yang tidak memiliki tuple yang cocok di Table_B. Lebih jauh, itu memperluas tupel dari Table_B dengan NULL yang tidak memiliki tupel yang cocok di Table_A.

Oleh karena itu, Full Outer Join mempertahankan semua tupel dari kiri serta meja kanan, bersama dengan tupel yang cocok dari kedua tabel.

Mari kita bahas FULL Outer Join dengan sebuah contoh; kami memiliki dua tabel di atas, Tabel Siswa dan Tabel Departemen .

Sekarang, kita akan menerapkan Full Outer Join ke tabel Student dan tabel Department.

PILIH * DARI GABUNGAN LENGKAP Mahasiswa
ON Student. Student_ID = Department.Student_ID

Dalam kueri di atas, Tabel Siswa adalah tabel kiri kami dan Tabel Departemen adalah tabel kanan kami. Menurut Full Outer Join, hasilnya harus mencakup semua tupel dari kedua tabel.

Amati hasil yang diperoleh dari gabungan luar penuh; itu memiliki semua tupel dari tabel Mahasiswa dan Departemen bersama dengan tupel yang cocok dari tabel Mahasiswa dan Departemen. Student_id dari Jimmy, Joseph Harry yaitu 10026.02256.56362 masing-masing, dari tabel Student, tidak ada dalam tabel Department. Oleh karena itu, nilai atribut tabel Department untuk Jimmy, Joseph Harry diperluas ke NULL . Student_ID 10536 dan 00954, dari tabel Department, tidak ada di kolom Student_ID pada tabel Student. Oleh karena itu, nilai atribut atribut Nama untuk Student_ID 10536 dan 00954 diperluas ke NULL .

Perbedaan Kunci Antara Kiri, Kanan dan Gabung Luar Penuh

  1. Hasil dari Left Outer Join memiliki semua tuple dari tabel kiri. Demikian pula, hasil dari Right Outer Join memiliki semua tuple di tabel kanan. Dan hasil dari Full Outer Join memiliki semua tupel dari kiri dan kanan.
  2. Di Left Outer Join, tupel tabel kiri yang tidak memiliki tupel yang cocok di tabel kanan diperpanjang dengan nilai Null untuk atribut dari tabel kanan. Berlawanan dengan kasus Right Outer Join. Dan di Full Outer Join, tupel dari tabel kiri dan kanan yang tidak memiliki tupel yang cocok di tabel kanan dan kiri masing-masing diperpanjang dengan NULL untuk atribut masing-masing tabel kanan dan kiri.

Kesimpulan:

Jaga posisi nama tabel dalam kueri. Karena posisi nama tabel dalam kueri memutuskan apakah tabel akan dianggap sebagai tabel kiri atau tabel kanan.

Top