Sebagian pertanyaan tidak bisa dijawab satu query datar. Subquery memecah pertanyaan besar menjadi bagian-bagian yang bisa dibaca. Section ini melatih posisi-posisi subquery di MySQL dan menilai kapan subquery lebih jelas dibanding join.

# Pengenalan Subquery

Kenalan dengan subquery di MySQL: query di dalam query yang ditulis dalam tanda kurung, logika evaluasinya yang berjalan lebih dulu sebelum dipakai query luarnya, tiga posisi utama di WHERE, SELECT, dan FROM, serta contoh pertama menyaring produk dengan harga di atas rata-rata.

Buka →
# Scalar Subquery

Bedah scalar subquery di MySQL: subquery yang mengembalikan tepat satu baris satu kolom sehingga bisa dipakai di tempat nilai biasa berada, perilaku subquery kosong yang diam-diam menjadi NULL, dan error 1242 yang muncul saat subquery mengembalikan lebih dari satu baris.

Buka →
# Subquery dalam WHERE

Pakai subquery di klausa WHERE MySQL: IN dan = ANY untuk keanggotaan dari hasil query lain, bedah ALL versus ANY dengan angka konkret, agregat sebagai ambang penyaringan, gotcha NOT IN yang menghasilkan kosong karena NULL, hingga pengantar subquery berkorelasi.

Buka →
# Subquery dalam FROM

Pakai subquery setelah klausa FROM MySQL sebagai derived table: kewajiban alias yang menimbulkan error 1248 bila dilanggar, pola klasik agregat dulu lalu join untuk nama pelanggan, serta trik memfilter hasil agregat yang tidak bisa dilakukan WHERE biasa.

Buka →
# Subquery dalam SELECT

Selipkan subquery di daftar SELECT MySQL sebagai kolom kalkulasi: hitung jumlah transaksi per produk dari tabel lain, tangani baris tanpa pasangan dengan IFNULL, pakai subquery di ORDER BY, dan timbang keterbacaan melawan performa pola ini.

Buka →
# EXISTS dan NOT EXISTS

Bedah operator EXISTS dan NOT EXISTS di MySQL: konvensi SELECT 1, perilaku berhenti di baris pertama yang ditemukan, NOT EXISTS sebagai anti-join untuk mencari yang belum punya pasangan, dan perbandingan nyatanya melawan NOT IN yang gagal diam-diam karena NULL.

Buka →
# Correlated Subquery

Bedah correlated subquery di MySQL: subquery yang merujuk kolom tabel query luar sehingga dievaluasi ulang untuk setiap baris, contoh produk dengan harga di atas rata-rata kategorinya sendiri, EXISTS berkorelasi, dan biaya per baris di tabel besar.

Buka →
# Subquery vs JOIN

Bandingkan subquery dan JOIN di MySQL pada soal yang sama: pelanggan dengan pesanan lewat JOIN+DISTINCT versus EXISTS, total belanja per pelanggan lewat join versus derived table, tabel keputusan keterbacaan performa dan semantik, serta situasi yang menuntut salah satunya.

Buka →