Jenis Subquery pada SQL Bertingkat
Berikut penjelasan sederhana mengenai jenis-jenis subquery pada SQL bertingkat beserta
contoh agar mudah dipahami.
1. Subquery di bagian WHERE
Digunakan untuk mencari data berdasarkan hasil query lain.
Contoh:
SELECT nama
FROM siswa
WHERE id_kelas = (SELECT id_kelas FROM kelas WHERE nama_kelas = 'XI RPL 1');
2. Subquery di SELECT
Dipakai untuk menampilkan informasi tambahan dari tabel lain.
Contoh:
SELECT nama,
(SELECT nama_kelas FROM kelas WHERE kelas.id_kelas = siswa.id_kelas) AS kelas
FROM siswa;
3. Subquery di FROM
Digunakan untuk membuat tabel sementara.
Contoh:
SELECT nama, total_nilai
FROM (
SELECT nama, SUM(nilai) AS total_nilai
FROM nilai
GROUP BY nama
) AS nilai_siswa
WHERE total_nilai > 200;
4. Single Row Subquery
Menghasilkan satu nilai saja.
Contoh:
SELECT nama FROM siswa
WHERE umur = (SELECT MAX(umur) FROM siswa);
5. Multiple Row Subquery
Menghasilkan lebih dari satu baris data.
Contoh:
SELECT nama FROM siswa
WHERE id_kelas IN (SELECT id_kelas FROM kelas WHERE jurusan = 'RPL');
6. Correlated Subquery
Subquery yang bergantung pada query utama.
Contoh:
SELECT nama
FROM siswa s
WHERE umur > (SELECT AVG(umur) FROM siswa WHERE id_kelas = s.id_kelas);
Dokumen ini menjelaskan subquery secara sederhana sehingga mudah dipahami untuk
pembelajaran dasar SQL.