Hola mentemen! pada kesempatan kali ini, mimin ingin membahas tentang “Full Outer Join” dalam konteks pengolahan database. Full outer join adalah salah satu jenis operasi penggabungan tabel yang sangat berguna untuk menggabungkan dua tabel atau lebih yang memiliki relasi yang saling beririsan.

Melalui blog ini, mimin akan membahas konsep full outer join secara rinci, menjelaskan cara kerjanya, menggunakan full outer join di MySQL dan memberikan contoh penggunaannya. Semoga blog ini bermanfaat bagi Anda dan dapat membantu Anda memahami konsep full outer join dengan lebih baik. Ikuzoooo!

Pengertian Full Outer Join

Full Outer Join adalah salah satu jenis join dalam database yang digunakan untuk menggabungkan dua tabel atau lebih yang menghasilkan gabungan data dari kedua tabel, termasuk data yang tidak memiliki pasangan atau data yang tidak cocok di antara kedua tabel.

Dalam melakukan Full Outer Join, data dari kedua tabel akan dipertahankan. Jika ada data yang tidak memiliki pasangan di tabel lain, data tersebut tetap ditampilkan. Hal ini berbeda dengan jenis join lainnya, seperti Inner Join, dimana hanya data yang memiliki pasangan di kedua tabel yang ditampilkan.

Cara kerja Full Outer Join

Cara kerja Full Outer Join adalah dengan menggabungkan data dari kedua tabel, kemudian mencocokkan setiap baris dengan nilai yang sama. Jika ada nilai yang tidak cocok, data tersebut akan ditampilkan dalam hasil Full Outer Join. Dalam hal ini, data yang tidak memiliki pasangan di salah satu tabel tetap ditampilkan dan diisi dengan nilai NULL.

Apakah MySQL mendukung Full Outer Join?

MySQL adalah salah satu sistem manajemen basis data relasional (RDBMS) yang paling populer di dunia dan digunakan oleh berbagai jenis aplikasi. Meskipun MySQL mendukung berbagai jenis join seperti Inner Join, Left Join, Right Join, dan Cross Join, sayangnya MySQL tidak mendukung Full Outer Join secara langsung.

Hal ini berbeda dengan sistem manajemen basis data relasional lainnya seperti SQL Server, Oracle, PostgreSQL, dan DB2 yang mendukung Full Outer Join secara langsung. Oleh karena itu, untuk melakukan Full Outer Join pada MySQL, kita perlu menggunakan teknik penggabungan (union) dari dua join jenis lainnya, yaitu Left Join dan Right Join.

Cara melakukan Full Outer Join pada MySQL dengan teknik penggabungan adalah dengan menggabungkan dua select statement, satu menggunakan Left Join dan satunya menggunakan Right Join. Setelah itu, kita perlu menggabungkan hasil dari kedua statement tersebut menggunakan operator UNION atau UNION ALL.

Contoh penggunaan Full Outer Join di MySQL

Seperti yang sebelumnya dijelaskan, MySQL tidak mendukung full outer join secara langsung makanya kita kita perlu menggunakan teknik penggabungan (union) dari dua join jenis lainnya, yaitu Left Join dan Right Join.

Misalnya, disini kita memiliki table siswa dan table nilai_siswa:

Tabel siswa:

id_siswanamakelas
1Ahmad10A
2Budi10B
3Cindy10C
4Denny10A
5Eva10B
6Farida10C

Tabel nilai_siswa :

id_siswamatematikafisikabiologi
1808590
2757080
3909585
4858075
5707590
7909090

Untuk menggabungkan data dari kedua tabel dengan FULL OUTER JOIN, kita dapat menggunakan teknik UNION dari LEFT JOIN dan RIGHT JOIN. Berikut ini adalah contoh SQL untuk melakukan operasi FULL OUTER JOIN:

SELECT siswa.id_siswa, siswa.nama, siswa.kelas, nilai_siswa.matematika, nilai_siswa.fisika, nilai_siswa.biologi
FROM siswa
LEFT JOIN nilai_siswa ON siswa.id_siswa = nilai_siswa.id_siswa
UNION
SELECT siswa.id_siswa, siswa.nama, siswa.kelas, nilai_siswa.matematika, nilai_siswa.fisika, nilai_siswa.biologi
FROM siswa
RIGHT JOIN nilai_siswa ON siswa.id_siswa = nilai_siswa.id_siswa
WHERE siswa.id_siswa IS NULL;

Berikut adalah penjelasan mengenai query di atas:

  • Pertama, kita menggunakan LEFT JOIN untuk menggabungkan data dari tabel siswa dan tabel nilai_siswa berdasarkan id_siswa.
  • Kemudian, kita menggunakan UNION untuk menggabungkan hasil dari LEFT JOIN dengan hasil dari RIGHT JOIN.
  • Pada RIGHT JOIN, kita menambahkan WHERE clause untuk mengambil semua baris yang tidak memiliki pasangan di tabel siswa.

Hasilnya akan seperti ini:

id_siswanamakelasmatematikafisikabiologi
1Ahmad10A808590
2Budi10B757080
3Cindy10C909585
4Denny10A48580
5Eva10B57075
6Farida10CNULLNULLNULL
NULLNULLNULL909090

Dalam hasil di atas, kita dapat melihat bahwa semua baris dari kedua tabel telah digabungkan. Nilai matematika, fisika, dan biologi yang tidak memiliki pasangan di tabel siswa ditampilkan sebagai NULL, sedangkan data siswa yang tidak memiliki pasangan di tabel nilai_siswa juga ditampilkan dengan nilai NULL.