SQL - Left Join vs Right Join: Panduan Lengkap untuk Pemula

Hai teman-teman yang sedang belajar SQL! Saya sangat gembira untuk menjadi panduan Anda dalam perjalanan menarik ini melalui dunia SQL joins. Sebagai seseorang yang telah mengajar ilmu komputer selama bertahun-tahun, saya dapat menjamin Anda bahwa menguasai joins adalah seperti membuka kekuatan super dalam realm database. mari kita masuk ke dalam dan membongkar misteri Left Join dan Right Join bersama!

SQL - Left Join vs Right Join

Memahami Joins: Dasar-Dasar

Sebelum kita masuk ke khususnya Left dan Right Joins, mari kita mulai dengan sebuah refresh cepat tentang apa itu joins dalam SQL. Bayangkan Anda sedang merencanakan sebuah pesta dan Anda memiliki dua daftar: satu dengan nama-nama tamu dan lainnya dengan minuman favorit mereka. Joins adalah seperti tongkat魔法 yang membantu Anda menggabungkan daftar ini dalam berbagai cara agar Anda mendapatkan informasi yang Anda butuhkan.

Cara Kerja Left Join

Apa Itu Left Join?

Left Join adalah seperti mengundang semua orang di daftar tamu Anda ke pesta, tanpa menghiraukan apakah Anda tahu minuman favorit mereka atau tidak. Itu mengembalikan semua rekord dari tabel kiri (tabel pertama yang Anda sebutkan dalam query) dan rekord yang cocok dari tabel kanan.

Syntax Left Join

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

Contoh Left Join

mari buat dua tabel sederhana untuk mengilustrasikan ini:

CREATE TABLE Guests (
GuestID INT PRIMARY KEY,
GuestName VARCHAR(50)
);

CREATE TABLE Drinks (
DrinkID INT PRIMARY KEY,
GuestID INT,
FavoriteDrink VARCHAR(50)
);

INSERT INTO Guests (GuestID, GuestName) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie'),
(4, 'David');

INSERT INTO Drinks (DrinkID, GuestID, FavoriteDrink) VALUES
(1, 1, 'Mojito'),
(2, 2, 'Beer'),
(3, 3, 'Wine');

Sekarang, mari gunakan Left Join untuk mendapatkan semua tamu dan minuman favorit mereka (jika diketahui):

SELECT Guests.GuestName, Drinks.FavoriteDrink
FROM Guests
LEFT JOIN Drinks ON Guests.GuestID = Drinks.GuestID;

Hasil:

GuestName FavoriteDrink
Alice Mojito
Bob Beer
Charlie Wine
David NULL

Seperti yang Anda lihat, David muncul dalam hasil meskipun kita tidak tahu minumannya. Itu adalah keajaiban Left Join!

Cara Kerja Right Join

Apa Itu Right Join?

Right Join adalah seperti fokus pada daftar minuman dan melihat tamu mana yang menyukai setiap minuman. Itu mengembalikan semua rekord dari tabel kanan dan rekord yang cocok dari tabel kiri.

Syntax Right Join

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

Contoh Right Join

Menggunakan tabel sebelumnya, mari lakukan Right Join:

SELECT Guests.GuestName, Drinks.FavoriteDrink
FROM Guests
RIGHT JOIN Drinks ON Guests.GuestID = Drinks.GuestID;

Hasil:

GuestName FavoriteDrink
Alice Mojito
Bob Beer
Charlie Wine

Perhatikan bagaimana David tidak muncul dalam hasil ini karena dia tidak memiliki minuman favorit yang tercatat.

Left Join Vs Right Join

Sekarang kita telah melihat kedua jenis joins dalam aksi, mari bandingkan mereka bersamaan:

Aspek Left Join Right Join
Fokus Semua rekord dari tabel kiri (pertama) Semua rekord dari tabel kanan (kedua)
Null values Dalam kolom tabel kanan untuk yang tidak cocok Dalam kolom tabel kiri untuk yang tidak cocok
Use case Ketika Anda ingin semua rekord dari tabel utama Ketika Anda ingin semua rekord dari tabel yang dijoin
Result set size Selalu termasuk semua rekord tabel kiri Selalu termasuk semua rekord tabel kanan

Kapan Menggunakan Left Join vs Right Join

  1. Gunakan Left Join ketika:
  • Anda ingin menjaga semua rekord dari tabel utama.
  • Anda baik-baik saja dengan nilai NULL untuk rekord yang tidak cocok dari tabel kanan.
  1. Gunakan Right Join ketika:
  • Anda ingin menjaga semua rekord dari tabel sekunder.
  • Anda baik-baik saja dengan nilai NULL untuk rekord yang tidak cocok dari tabel kiri.

Tips Pro

Dalam tahun-tahun mengajar saya, saya telah melihat bahwa banyak pengembang lebih suka menggunakan Left Joins daripada Right Joins. Mengapa? Biasanya lebih intuitif untuk dibaca dan dipahami. Anda selalu dapat menulis ulang Right Join sebagai Left Join dengan memutar urutan tabel. Jadi, jika Anda merasa Right Joins sulit dipahami, jangan ragu untuk tetap menggunakan Left Joins!

Latihan Praktis

Ayo mengukuhkan pemahaman kita dengan sebuah latihan menyenangkan. Bayangkan Anda sedang mengorganisir sebuah kelompok buku. Anda memiliki dua tabel: Members dan Books.

CREATE TABLE Members (
MemberID INT PRIMARY KEY,
MemberName VARCHAR(50)
);

CREATE TABLE Books (
BookID INT PRIMARY KEY,
MemberID INT,
BookTitle VARCHAR(100)
);

INSERT INTO Members (MemberID, MemberName) VALUES
(1, 'Emma'),
(2, 'James'),
(3, 'Sophia'),
(4, 'Oliver');

INSERT INTO Books (BookID, MemberID, BookTitle) VALUES
(1, 1, 'Pride and Prejudice'),
(2, 2, '1984'),
(3, 2, 'To Kill a Mockingbird'),
(4, 3, 'The Great Gatsby');

Sekarang, coba melakukan query berikut:

  1. Left Join untuk mendapatkan semua anggota dan bukunya (jika ada):
SELECT Members.MemberName, Books.BookTitle
FROM Members
LEFT JOIN Books ON Members.MemberID = Books.MemberID;
  1. Right Join untuk mendapatkan semua buku dan pemiliknya (jika ada):
SELECT Members.MemberName, Books.BookTitle
FROM Members
RIGHT JOIN Books ON Members.MemberID = Books.MemberID;

Bandingkan hasilnya. Bisa Anda melihat perbedaan?

Kesimpulan

Selamat! Anda baru saja menguasai seni Left dan Right Joins dalam SQL. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba jenis joins ini dalam berbagai situasi.

Dengan kata-kata akhir, saya selalu katakan kepada murid-murid saya: "SQL joins adalah seperti pieces puzzle. Semakin banyak Anda mainkan dengannya, semakin baik Anda akan menjadi dalam menggabungkan gambar besar data Anda!"

Selamat mencari dan semoga joins Anda selalu tepat!

Credits: Image by storyset