Hari 17: LEFT JOIN & RIGHT JOIN
55 min
Last updated 25 Mar 2026
LEFT JOIN — Semua dari Kiri
LEFT JOIN mengembalikan semua baris dari tabel kiri, plus data yang cocok dari tabel kanan. Jika tidak ada pasangan, kolom tabel kanan bernilai NULL.
-- Semua pelanggan, meskipun belum pernah pesan
SELECT
pl.nama,
pl.kota,
COUNT(p.id) AS jumlah_pesanan
FROM pelanggan pl
LEFT JOIN pesanan p ON pl.id = p.pelanggan_id
GROUP BY pl.id, pl.nama, pl.kota
ORDER BY jumlah_pesanan DESC;
Cari Data yang Tidak Ada Pasangan
-- Pelanggan yang BELUM PERNAH pesan
SELECT pl.nama, pl.kota
FROM pelanggan pl
LEFT JOIN pesanan p ON pl.id = p.pelanggan_id
WHERE p.id IS NULL;
RIGHT JOIN
Kebalikan LEFT JOIN — semua dari tabel kanan. Di SQLite, RIGHT JOIN bisa diganti dengan menukar posisi tabel dan memakai LEFT JOIN.
💡
Notice: COUNT(pr.id) tidak menghitung NULL, sehingga kategori tanpa produk terhitung 0.
Assignment
Tampilkan semua kategori beserta jumlah produknya (gunakan LEFT JOIN agar kategori tanpa produk tetap muncul). Kolom: nama_kategori, jumlah_produk. Urutkan dari terbanyak.
Expected output:
5 row(s) returned
SQL
query.sql
Solution
Output
⏳ Loading DB...