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!

SQL - Left Join

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