Panduan Komprehensif tentang Left Join vs Right Join untuk Pemula

Hai teman-teman yang bersemangat dalam dunia SQL! Saya sangat senang 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. Jadi, mari kita masuk kedalam dan membongkar misteri Left Join dan Right Join bersama!

SQL - Left Join vs Right Join

Mengenal Joins: Dasar-Dasar

Sebelum kita mendalamkan diskusi tentang Left dan Right Joins, mari kita mulai dengan refresh singkat tentang apa itu joins dalam SQL. Bayangkan Anda sedang merencanakan pesta dan 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 untuk 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 peduli 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 kita 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 kita 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 walaupun kita tidak tahu minuman favoritnya. 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 memilih minuman mana. 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 kita melakukan 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 bahwa David tidak muncul dalam hasil ini karena dia tidak memiliki minuman favorit yang terdaftar.

Left Join vs Right Join

Sekarang kita telah melihat kedua jenis joins dalam aksi, mari kita 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 mendengar banyak pengembang memilih Left Join daripada Right Join. Mengapa? Biasanya lebih intuitif untuk dibaca dan dipahami. Anda selalu bisa menulis Right Join sebagai Left Join dengan mengganti urutan tabel. Jadi, jika Anda merasa Right Join membingungkan, jangan ragu untuk tetap menggunakan Left Join!

Latihan Praktik

Ayo mengukuhkan pemahaman kita dengan latihan menyenangkan. Bayangkan Anda sedang mengorganisir kelab 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, cobalah query ini:

  1. Left Join untuk mendapatkan semua anggota dan buku mereka (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 perbedaannya?

Kesimpulan

Selamat! Anda telah menyelesaikan seni Left dan Right Joins dalam SQL. Ingat, latihan membuat sempurna, jadi jangan ragu untuk mencoba jenis joins ini dalam berbagai skenario.

Sebagai catatan akhir, saya selalu katakan kepada murid-muridku: "SQL joins adalah seperti potongan puzzle. Semakin banyak Anda mainkan dengannya, semakin baik Anda akan menjadi dalam menyusun gambar besar data Anda!"

Selamat mencari tahu, dan semoga joins Anda selalu benar!

Credits: Image by storyset