SQL - Left Join: Panduan Komprehensif untuk Pemula
Hai teman-teman, penggemar SQL yang bersemangat! Hari ini, kita akan mengemban perjalanan yang menarik ke dunia SQL Left Joins. Jangan khawatir jika Anda baru saja memulai dalam programming; saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatunya secara langkah demi langkah. Jadi, ambillah secangkir kopi, dan mari kita masuk ke dalamnya!
Apa Itu Outer Join?
Sebelum kita memasuki Left Joins, mari pertama-tama kita mengerti apa itu Outer Join. Bayangkan Anda sedang merencanakan pesta dan memiliki dua daftar: satu dengan nama teman-teman Anda dan lainnya dengan minuman favorit mereka. Outer Join adalah seperti menggabungkan daftar ini, bahkan jika beberapa teman belum menentukan minuman favorit mereka atau beberapa minuman belum ditugaskan ke teman apapun.
Dalam istilah SQL, Outer Join memungkinkan kita untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang terkait, bahkan ketika tidak ada kesesuaian dalam salah satu tabel. Ada tiga jenis Outer Joins:
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 ketika ada kesesuaian baik di tabel kiri maupun kanan |
Untuk panduan ini, kita akan fokus pada Left Join, yang merupakan Outer Join yang paling banyak digunakan.
SQL Left Join
Left Join mengembalikan semua rekord dari tabel kiri (tabel pertama yang disebutkan dalam query) dan rekord yang cocok dari tabel kanan. Jika tidak ada kesesuaian, hasilnya adalah NULL di sisi kanan.
mari lihat contoh. Anggap 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 murid dan kursus 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 kursus apa pun. Ini adalah keajaiban Left Join!
Menggabungkan Banyak Tabel dengan Left Join
Sekarang kita sudah menguasai dasar-dasar, mari kita tingkatkan. Dalam keadaan nyata, Anda seringkali perlu menggabungkan lebih dari dua tabel. Jangan khawatir; Left Join ada untuk mendukung Anda!
mari tambahkan tabel ketiga ke contohnya: 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 murid, kursus, dan pengajar mereka:
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-tama 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 |
Apakah ini menakjubkan bagaimana kita dapat menggabungkan informasi dari banyak tabel begitu mudah?
Left Join dengan WHERE Clause
kadang-kadang, Anda mungkin ingin menyaring hasil Left Join Anda. Ini adalah tempat WHERE clause berguna. mari katakan kita ingin menemukan semua murid yang belum mendaftar dalam kursus apa pun:
SELECT Students.Name
FROM Students
LEFT JOIN Courses ON Students.StudentID = Courses.StudentID
WHERE Courses.CourseID IS NULL;
Query ini akan mengembalikan:
Name |
---|
Charlie |
WHERE clause menyaring semua baris di mana Courses.CourseID
bukan NULL, secara efektif memberikan kita hanya murid-murid tanpa kursus.
Ingat, WHERE clause diterapkan setelah operasi join. Jika Anda ingin menyaring tabel kanan sebelum menggabungkannya, Anda seharusnya menggunakan klausa ON saja.
Kesimpulan
Dan begitu, teman-teman! Kita telah mengemban perjalanan melalui negeri SQL Left Joins, dari konsep dasar hingga aplikasi yang lebih tingkat lanjut. Left Joins adalah alat yang sangat kuat dalam peralatan SQL Anda, memungkinkan Anda untuk menggabungkan data dari banyak tabel bahkan ketika tidak ada kesesuaian sempurna.
Sekiranya Anda terus berlatih dan memperoleh pengalaman, Anda akan menemukan bahwa Left Joins menjadi nalar. Mereka seperti pisau Swiss Army - multifungsi, berguna, dan selalu ada saat Anda membutuhkannya.
Ingat, kunci untuk menguasai SQL adalah latihan. Jadi, jangan khawatir untuk mencoba query dan struktur tabel yang berbeda. Semoga Anda sukses dalam coding, dan may your joins always be successful!
Credits: Image by storyset