SQL - Left Join: Panduan Lengkap untuk Pemula

Hai teman-teman yang bersemangat dalam dunia SQL! Hari ini, kita akan melakukan perjalanan menarik ke dalam dunia Left Join SQL. Jangan khawatir jika Anda masih baru dalam programming; saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatu secara langkah demi langkah. Jadi, ambillah secangkir kopi, dan mari kita masuk ke dalamnya!

SQL - Left Join

Apa Itu Outer Join?

Sebelum kita mendalamkan Left Join, mari kita pertama-tama mengerti apa Outer Join. Bayangkan Anda sedang merencanakan pesta dan memiliki dua daftar: satu dengan nama teman-teman Anda dan yang lainnya dengan minuman favorit mereka. Outer Join seperti menggabungkan daftar ini, bahkan jika beberapa teman belum menentukan minuman favorit mereka atau beberapa minuman belum diassign ke teman apapun.

Dalam istilah SQL, Outer Join memungkinkan kita untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang terkait, bahkan jika tidak ada kesamaan dalam salah satu tabel. Ada tiga jenis Outer Join:

Tipe Join Deskripsi
Left Join Mengembalikan semua baris dari tabel kiri dan baris yang cocok dari tabel kanan
Right Join Mengembalikan semua baris dari tabel kanan dan baris yang cocok dari tabel kiri
Full Outer Join Mengembalikan semua baris jika ada kesamaan di salah satu tabel kiri atau kanan

Untuk tutorial ini, kita akan fokus pada Left Join, yang merupakan Outer Join yang paling umum digunakan.

Left Join SQL

Left Join mengembalikan semua catatan dari tabel kiri (tabel pertama yang disebutkan dalam query) dan catatan yang cocok dari tabel kanan. Jika tidak ada kesamaan, hasilnya adalah NULL di sebelah kanan.

mari kita lihat contoh. Anggaplah kita memiliki dua tabel: Students dan Courses.

-- Tabel Students
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50)
);

INSERT INTO Students VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');

-- Tabel Courses
CREATE TABLE Courses (
CourseID INT PRIMARY KEY,
CourseName VARCHAR(50),
StudentID INT
);

INSERT INTO Courses VALUES
(101, 'SQL Basics', 1),
(102, 'Advanced SQL', 2),
(103, 'Data Analysis', NULL);

Sekarang, mari kita gunakan Left Join untuk melihat semua siswa dan mata kuliah mereka (jika ada):

SELECT Students.Name, Courses.CourseName
FROM Students
LEFT JOIN Courses ON Students.StudentID = Courses.StudentID;

Hasilnya akan tampak seperti ini:

Name CourseName
Alice SQL Basics
Bob Advanced SQL
Charlie NULL

Seperti yang Anda lihat, Charlie muncul dalam hasil meskipun dia tidak mendaftar dalam mata kuliah apapun. Ini adalah keajaiban Left Join!

Menggabungkan Banyak Tabel dengan Left Join

Sekarang kita sudah menguasai dasar-dasar, mari kita tingkatkan tantangan. Dalam situasi nyata, Anda seringkali perlu menggabungkan lebih dari dua tabel. Jangan khawatir; Left Join ada untuk membantu Anda!

Mari kita tambahkan tabel ketiga ke contoh kita: Instructors.

CREATE TABLE Instructors (
InstructorID INT PRIMARY KEY,
InstructorName VARCHAR(50),
CourseID INT
);

INSERT INTO Instructors VALUES
(201, 'Prof. Smith', 101),
(202, 'Dr. Johnson', 102),
(203, 'Ms. Williams', NULL);

Sekarang, mari kita gabungkan semua tabel untuk mendapatkan pandangan komprehensif tentang siswa, mata kuliah mereka, dan pengajar:

SELECT Students.Name AS StudentName,
Courses.CourseName,
Instructors.InstructorName
FROM Students
LEFT JOIN Courses ON Students.StudentID = Courses.StudentID
LEFT JOIN Instructors ON Courses.CourseID = Instructors.CourseID;

Query ini pertama kali menggabungkan Students dengan Courses, kemudian menggabungkan hasilnya dengan Instructors. Hasilnya mungkin tampak seperti ini:

StudentName CourseName InstructorName
Alice SQL Basics Prof. Smith
Bob Advanced SQL Dr. Johnson
Charlie NULL NULL

Bukannya menakjubkan bagaimana kita dapat menggabungkan informasi dari banyak tabel begitu mudah?

Left Join dengan Clause WHERE

kadang-kadang, Anda mungkin ingin menyaring hasil Left Join Anda. Ini adalah tempat WHERE clause berguna. mari kita katakan kita ingin menemukan semua siswa yang belum mendaftar dalam mata kuliah apapun:

SELECT Students.Name
FROM Students
LEFT JOIN Courses ON Students.StudentID = Courses.StudentID
WHERE Courses.CourseID IS NULL;

Query ini akan mengembalikan:

Name
Charlie

Clause WHERE menyaring semua baris dimana Courses.CourseID bukan NULL, secara efektif memberikan kita hanya siswa tanpa mata kuliah.

Ingat, clause WHERE diterapkan setelah operasi join. Jika Anda ingin menyaring tabel kanan sebelum menggabungkannya, Anda seharusnya menggunakan clause ON saja.

Kesimpulan

Dan begitu kita mencapai akhir, teman-teman! Kita telah melakukan perjalanan melalui dunia SQL Left Joins, dari konsep dasar ke aplikasi yang lebih maju. Left Joins adalah alat yang sangat kuat dalam peralatan SQL Anda, memungkinkan Anda untuk menggabungkan data dari banyak tabel bahkan jika tidak ada kesamaan sempurna.

Sekarang Anda mempraktikkan dan mendapatkan pengalaman, Anda akan menemukan bahwa Left Joins menjadi kebiasaan. Itu seperti Swiss Army knife di SQL – multifungsi, berguna, dan selalu ada saat Anda membutuhkannya.

Ingat, kunci untuk menjadi ahli SQL adalah praktik. Jadi, jangan khawatir untuk mencoba berbagai query dan struktur tabel. Selamat coding, dan semoga join Anda selalu sukses!

Credits: Image by storyset