Panduan Lengkap tentang SQL Full Join untuk Pemula

Hai teman-teman, para maestro SQL masa depan! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ini ke dunia SQL Full Joins. Sebagai guru ilmu komputer dengan tahun-tahun pengalaman, saya telah melihat banyak siswa terangsang saat mereka akhirnya memahami konsep ini yang kuat. mari kita lipat lengan dan masuk ke dalam!

SQL - Full Join

SQL Full Join

Apa Itu Full Join?

Bayangkan Anda sedang merencanakan pesta besar dan Anda punya dua daftar tamu: satu untuk teman-teman Anda dan lainnya untuk keluarga Anda. Full Join adalah seperti menggabungkan daftar ini sehingga mencakup semua orang, bahkan jika mereka hanya ada di salah satu daftar. Dalam istilah SQL, Full Join mengembalikan semua baris dari kedua tabel, tanpa menghiraukan apakah ada kesamaan atau tidak.

Sintaks Full Join

Berikut adalah sintaks dasar Full Join:

SELECT columns
FROM table1
FULL JOIN table2
ON table1.column = table2.column;

mari kitauraikan ini:

  • SELECT columns: Tentukan kolom mana yang Anda inginkan dalam hasil Anda.
  • FROM table1: Ini adalah tabel pertama Anda.
  • FULL JOIN table2: Ini memberitahu SQL bahwa Anda ingin melakukan Full Join dengan tabel kedua.
  • ON table1.column = table2.column: Ini adalah kondisi join Anda, menentukan bagaimana tabel tersebut terhubung.

Contoh Sederhana

Ayo katakan kita punya dua tabel: Employees dan Departments.

-- Buat tabel Employees
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(50),
DepartmentID INT
);

-- Buat tabel Departments
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName VARCHAR(50)
);

-- Masukkan beberapa data
INSERT INTO Employees VALUES (1, 'Alice', 1), (2, 'Bob', 2), (3, 'Charlie', NULL);
INSERT INTO Departments VALUES (1, 'HR'), (2, 'IT'), (3, 'Finance');

-- Lakukan Full Join
SELECT e.Name, d.DepartmentName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID;

Kueri ini akan mengembalikan:

Name DepartmentName
Alice HR
Bob IT
Charlie NULL
NULL Finance

Perhatikan bagaimana Charlie (yang belum ditugaskan ke departemen manapun) dan Finance (yang tidak memiliki karyawan) tetap dimasukkan ke dalam hasil. Itu adalah keajaiban Full Join!

Menggabungkan Banyak Tabel dengan Full Join

Sekarang, mari kita tingkatkan. Apa bila kita ingin menggabungkan lebih dari dua tabel? Tidak ada masalah! Full Joins dapat menangani itu juga.

Contoh Gabungan Tiga Tabel

Ayo menambahkan tabel Projects ke contoh sebelumnya:

-- Buat tabel Projects
CREATE TABLE Projects (
ProjectID INT PRIMARY KEY,
ProjectName VARCHAR(50),
DepartmentID INT
);

-- Masukkan beberapa data
INSERT INTO Projects VALUES (1, 'Website Redesign', 2), (2, 'Employee Survey', 1), (3, 'Cost Cutting', 3);

-- Lakukan Full Join dengan tiga tabel
SELECT e.Name, d.DepartmentName, p.ProjectName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID
FULL JOIN Projects p ON d.DepartmentID = p.DepartmentID;

Kueri ini akan memberikan kita pandangan komprehensif tentang karyawan, departemen mereka, dan proyek yang terkait:

Name DepartmentName ProjectName
Alice HR Employee Survey
Bob IT Website Redesign
Charlie NULL NULL
NULL Finance Cost Cutting

Bagaimana menariknya kita dapat melihat keseluruhan gambar hanya dengan satu kueri? Seperti memiliki penglihatan sinar-X untuk basis data Anda!

Full Join dengan WHERE Clause

kadang-kadang, kita ingin menyaring hasil Full Join kita. Itu adalah saat WHERE clause berguna.

Menyaring Hasil Full Join

Ayo modifikasi kueri sebelumnya untuk hanya menampilkan departemen dengan proyek:

SELECT e.Name, d.DepartmentName, p.ProjectName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID
FULL JOIN Projects p ON d.DepartmentID = p.DepartmentID
WHERE p.ProjectName IS NOT NULL;

Ini akan memberikan kita:

Name DepartmentName ProjectName
Alice HR Employee Survey
Bob IT Website Redesign
NULL Finance Cost Cutting

Lihat bagaimana Charlie menghilang dari hasil kita? Itu karena dia tidak terkait dengan proyek manapun.

Menangani Nilai NULL

Ketika bekerja dengan Full Joins, Anda akan sering menemui nilai NULL. Ini adalah tip profesional: gunakan COALESCE untuk mengganti NULL dengan nilai default:

SELECT
COALESCE(e.Name, 'Unassigned') AS EmployeeName,
COALESCE(d.DepartmentName, 'No Department') AS DepartmentName,
COALESCE(p.ProjectName, 'No Project') AS ProjectName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID
FULL JOIN Projects p ON d.DepartmentID = p.DepartmentID;

Ini akan memberikan kita output yang lebih user-friendly:

EmployeeName DepartmentName ProjectName
Alice HR Employee Survey
Bob IT Website Redesign
Charlie No Department No Project
Unassigned Finance Cost Cutting

Jauh lebih baik, kan? Sekarang kita memiliki pandangan jelas tentang seluruh organisasi kita, termasuk karyawan tanpa departemen dan departemen tanpa proyek.

Kesimpulan

Dan begitu, teman-teman! Kita telah melintasi negeri SQL Full Joins, dari konsep dasar hingga teknik yang lebih maju. Ingat, Full Joins adalah seperti undangan pesta termasuk - semua orang diterima, baik mereka memiliki kesamaan atau tidak.

Sekarang Anda berlatih konsep ini, Anda akan menemukan bahwa Full Joins adalah alat yang sangat kuat untuk analisis dan laporan data. Mereka memungkinkan Anda melihat keseluruhan gambar data Anda, termasuk apa yang mungkin hilang.

Terus mencoba, terus menggabungkan, dan terutama, terus bersenang-senang dengan SQL! Sebelum Anda tahu, Anda akan menjadi petarung Full Join dalam tim Anda. Selamat berkoding!

Credits: Image by storyset