5. Full Outer Join

Dalam SQL, FULL OUTER JOIN adalah jenis join yang menggabungkan data dari dua tabel berdasarkan kondisi tertentu, dengan mengembalikan semua baris dari kedua tabel, baik yang memiliki kecocokan maupun yang tidak. Jika tidak ada kecocokan, SQL akan mengisi nilai-nilai kolom yang hilang dengan NULL. Ini memungkinkan kita untuk melihat semua data dari kedua tabel, meskipun tidak ada kesesuaian antara beberapa baris.

Contoh rumusnya hampir sama dengan Full Outer Join:

Left JOIN
SELECT *
FROM tabel1
FULL OUTER JOIN tabel2
ON tabel1.kolom_kunci = tabel2.kolom_kunci;

Keterangan

  • Jika ada kecocokan antara tabel1 dan tabel2 berdasarkan kolom kunci (kolom_kunci), maka SQL akan menampilkan data dari kedua tabel dalam satu baris.
  • Jika tidak ada kecocokan di salah satu tabel:
    • Baris dari tabel1 yang tidak memiliki pasangan di tabel2 tetap ditampilkan, dengan nilai NULL di kolom tabel2.
    • Baris dari tabel2 yang tidak memiliki pasangan di tabel1 juga ditampilkan, dengan nilai NULL di kolom tabel1

Contoh Kasusnya seperti ini:

Terdapat tabel karyawan

Tabel Karyawan
CREATE TABLE Karyawan (
    id_karyawan INT PRIMARY KEY,
    nama_karyawan VARCHAR(50)
);

INSERT INTO Karyawan (id_karyawan, nama_karyawan) VALUES
(1, 'Andi'),
(2, 'Budi'),
(3, 'Citra');

Hasilnya

id_karyawan nama_karyawan
1 Andi
2 Budi
3 Citra

Lalu terdapat tabel Proyek :

Tabel Proyek
CREATE TABLE Proyek (
    id_proyek INT PRIMARY KEY,
    id_karyawan INT,
    nama_proyek VARCHAR(50),
    FOREIGN KEY (id_karyawan) REFERENCES Karyawan(id_karyawan)
);

INSERT INTO Proyek (id_proyek, id_karyawan, nama_proyek) VALUES
(1, 2, 'Proyek A'),
(2, 4, 'Proyek B');

Hasilnya

id_proyek id_karyawan nama_proyek
1 2 Proyek A
2 4 Proyek B

Jika kita menjalankan Full Quter Join maka bentuk queri nya seperti ini :

Full Quter Join
SELECT *
FROM Karyawan
FULL OUTER JOIN Proyek
ON Karyawan.id_karyawan = Proyek.id_karyawan;

Hasilnya :

id_karyawan nama_karyawan id_proyek id_karyawan nama_proyek
1 Andi NULL NULL NULL
2 Budi 1 2 Proyek A
3 Citra NULL NULL NULL
NULL NULL 2 4 Proyek B

Ringkasan

  • FULL OUTER JOIN menggabungkan semua data dari kedua tabel.
  • Mengisi dengan NULL jika tidak ada pasangan yang sesuai.
  • Berguna untuk menampilkan semua data meskipun sebagian tidak memiliki pasangan.