Learn
← Previous Next →

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...