Learn
← Previous Next →

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