- Contoh Tabel
- Apa Itu Subquery?
- 1. Subquery di Dalam WHERE
- 2. Subquery Menggunakan IN
- 3. Subquery di Dalam SELECT
- 4. Subquery di Dalam FROM
- Tips Penggunaan Subquery
- Kesimpulan
Halo teman-teman semuanya, di seri ketigabelas ini kita akan membahas tentang subquery, atau query di dalam query. Subquery sangat berguna saat kita ingin menggunakan hasil dari suatu query sebagai kondisi atau nilai dalam query lainnya. Ini bisa membuat proses pencarian data jadi lebih fleksibel dan dinamis.
Contoh Tabel
Untuk latihan, kita gunakan dua tabel berikut:
-
Tabel
jurusanid nama_jurusan 1 IPA 2 IPS -
Tabel
siswaid nama umur kelas jurusan_id 1 Ali 18 XII IPA 1 1 2 Budi 17 XI IPS 2 2 3 Citra 19 XII IPA 3 1 4 Dewi 16 X IPA 2 1 5 Eko 18 XII IPS 1 2
Apa Itu Subquery?
Subquery adalah sebuah query yang disisipkan di dalam query lain. Subquery bisa berada di:
- SELECT
- FROM
- WHERE
Biasanya subquery ditulis di dalam tanda kurung ().
1. Subquery di Dalam WHERE
Contoh: Tampilkan semua siswa yang berasal dari jurusan “IPA”
SELECT * FROM siswa
WHERE jurusan_id = (
SELECT id FROM jurusan WHERE nama_jurusan = 'IPA'
);
Penjelasan:
- Subquery mencari
idjurusan IPA → hasilnya1 - Lalu digunakan untuk memfilter siswa yang jurusan_id-nya = 1
Hasil:
| id | nama | umur | kelas | jurusan_id |
|---|---|---|---|---|
| 1 | Ali | 18 | XII IPA 1 | 1 |
| 3 | Citra | 19 | XII IPA 3 | 1 |
| 4 | Dewi | 16 | X IPA 2 | 1 |
2. Subquery Menggunakan IN
Contoh: Tampilkan siswa yang berasal dari jurusan “IPA” atau “IPS”
SELECT * FROM siswa
WHERE jurusan_id IN (
SELECT id FROM jurusan WHERE nama_jurusan IN ('IPA', 'IPS')
);
Ini bisa digunakan kalau kita ingin mencocokkan banyak nilai dari subquery.
3. Subquery di Dalam SELECT
Kita bisa menghitung data tambahan per baris menggunakan subquery.
Contoh: Tampilkan nama siswa dan jumlah total siswa yang berada dalam jurusan yang sama
SELECT nama,
(SELECT COUNT(*) FROM siswa AS s2
WHERE s2.jurusan_id = s1.jurusan_id) AS total_satu_jurusan
FROM siswa AS s1;
Hasil (misalnya):
| nama | total_satu_jurusan |
|---|---|
| Ali | 3 |
| Budi | 2 |
| Citra | 3 |
| Dewi | 3 |
| Eko | 2 |
4. Subquery di Dalam FROM
Subquery juga bisa digunakan sebagai tabel sementara dalam bagian FROM.
SELECT jurusan_id, COUNT(*) AS jumlah
FROM (
SELECT * FROM siswa WHERE umur >= 18
) AS siswa_dewasa
GROUP BY jurusan_id;
Ini menghitung jumlah siswa yang berumur ≥ 18, dikelompokkan berdasarkan jurusan.
Tips Penggunaan Subquery
- Gunakan subquery jika tidak memungkinkan dilakukan dengan JOIN biasa
- Untuk efisiensi, pertimbangkan JOIN jika subquery terlalu dalam atau kompleks
- Pastikan subquery menghasilkan data yang sesuai dengan konteks pemanggilnya (1 nilai, 1 kolom, atau 1 tabel)
Kesimpulan
Dalam artikel ini, kita telah mengenal subquery, sebuah teknik powerful yang memungkinkan kita menjalankan query di dalam query lain. Dengan subquery, kita bisa membangun logika pencarian data yang lebih fleksibel dan dinamis.
Terima Kasih
Artikel ini dibaca sebanyak 1.417 kali
{ setTimeout(() => { showShimmer = false; }, 300); })"
:class="{'opacity-0': !loaded, 'opacity-100': loaded}"
class="lazy w-full h-auto rounded-xl border border-white dark:border-neutral-700/80 transition-opacity duration-500"
loading="lazy"
/>
SAWERIA
Memuat komentar...