Subquery
Version Beta
11072013
Introduce
• Subquery adalah statement SELECT yang
dimasukkan ke statement SQL lainnya.
Subquery juga sering disebut sebagai inner
query atau query dalam.
• Statement yang mempunyai subquery juga
disebut outer query, main query atau query
luar/utama
Cara Kerja
• Sebelum query utama dijalankan, subquery
akan dijalankan satu kali. Hasil dari subquery
akan digunakan oleh query utama.
• Menggunakan sebuah subquery sama halnya
seperti kita membuat dua query. Kemudian
hasil query pertama digunakan untuk
menjalankan query ke dua.
Penggunaan
• Dalam klausa SELECT, WHERE, FROM, ORDER
BY, dan HAVING
• Dalam menambahkan row menggunakan
statement INSERT dan CREATE TABLE
• Dalam memasukkan row saat membuat view
dengan statement CREATE VIEW
• Dalam statement INSERT, UPDATE, dan DELETE
Subquery in WHERE clause
• Mencari Nilai di atas rata-rata
• SELECT NIS, KodePelajaran, Nilai
FROM Nilai WHERE Nilai > (SELECT
AVG(Nilai) FROM Nilai) ORDER BY
Nilai
Perbandingan Subquery dengan Joins
• Joins:
SELECT [Link], [Link], [Link] FROM
Nilai N JOIN Pelajaran P ON [Link]
= [Link] WHERE [Link] =
‘Matematika’ ORDER BY [Link]
• Subquery:
SELECT NIS, KodePelajaran, Nilai FROM Nilai
WHERE KodePelajaran IN (SELECT
KodePelajaran FROM Pelajaran WHERE
MataPelajaran = ‘Matematika’) ORDER BY NIS
Subquery in Search Conditions
• Mencari siswa yang belum mendapatkan nilai
• Subquery:
SELECT NIS, Nama, JenisKelamin, Alamat
FROM Siswa WHERE NIS NOT IN (SELECT
DISTINCT NIS FROM Nilai)
• Without Subquery:
SELECT [Link], Nama, JenisKelamin,
Alamat FROM Siswa LEFT JOIN Nilai ON
[Link] = [Link] WHERE [Link] IS
NULL