Hari 18: Multiple JOINs — Gabungkan 3+ Tabel
60 min
Last updated 25 Mar 2026
JOIN Lebih dari Dua Tabel
Kamu bisa JOIN sebanyak yang diperlukan — cukup tambahkan klausa JOIN berikutnya.
-- Gabungkan pesanan + pelanggan + detail_pesanan + produk
SELECT
p.id AS pesanan_id,
pl.nama AS pelanggan,
pr.nama_produk,
dp.jumlah,
dp.harga_satuan,
dp.subtotal
FROM pesanan p
INNER JOIN pelanggan pl ON p.pelanggan_id = pl.id
INNER JOIN detail_pesanan dp ON dp.pesanan_id = p.id
INNER JOIN produk pr ON dp.produk_id = pr.id
ORDER BY p.id, pr.nama_produk;
JOIN + GROUP BY
-- Total belanja per pelanggan
SELECT
pl.nama,
COUNT(DISTINCT p.id) AS jumlah_pesanan,
SUM(dp.subtotal) AS total_belanja
FROM pelanggan pl
LEFT JOIN pesanan p ON pl.id = p.pelanggan_id
LEFT JOIN detail_pesanan dp ON p.id = dp.pesanan_id
GROUP BY pl.id, pl.nama
ORDER BY total_belanja DESC;
💡
Notice: Setiap JOIN menambahkan tabel baru ke dalam "gabungan".
Assignment
Tampilkan setiap item pesanan dengan lengkap: id pesanan, nama pelanggan, nama produk, nama kategori produk, jumlah, dan subtotal. Urutkan berdasarkan id pesanan.
Expected output:
30 row(s) returned
SQL
query.sql
Solution
Output
⏳ Loading DB...