Pengertian dan Contoh SUBQUERY pada MYSQL / ORACLE


Subquery merupakan suatu query seperti halnya query biasa yang berjalan di dalam query induk / master. Sub query dapat digunakan untuk mengambil suatu data di field / kolom pada tabel lain. Misalnya kita memiliki tabel seperti berikut :

Tabel 1 : (Identitas)
Nama No_Telp Pekerjaan Kode_Kota
Dwiky 0219857348 Developer JKT01
Ilham 0219378474 Developer JKT01
Wilda 0219374556 Akuntan BDG01

Tabel 2 : (Data_Kota)
Kode_Kota* Nama_Kota
JKT01 JAKARTA
BDG01 BANDUNG
DPS02 DENPASAR

Disini kita memiliki 2 tabel, Tabel 1 diberi nama Identitas dan Tabel 2 diberi nama Data_Kota
Kemudian kita ingin menampilkan Nama Kota pada Tabel 1. Sedangkan Tabel 1 tidak memiliki kolom "Nama_Kota", untuk itu kita dapat menggunakan Subquery untuk menampilkan Kolom Nama Kota.

Berikut ini Querynya :
SELECT Nama, No_Telp, Pekerjaan, Kode_Kota, (SELECT T2.Nama_Kota FROM Data_Kota T2 WHERE T1.Kode_Kota = T2.Kode_Kota) AS Nama_Kota FROM Identitas T1;

Subquery yang dimaksud pada Query diatas yaitu : 
(SELECT T2.Nama_Kota FROM Data_Kota T2 WHERE T1.Kode_Kota = T2.Kode_Kota) AS Nama_Kota

T1 Merupakan Alias untuk Tabel Identitas dan T2 merupakan Alias untuk tabel Data_Kota
Alias tersebut digunakan untuk mempermudah menuliskan nama tabel. Selain itu pada tabel 1 dan tabel 2 terdapat nama kolom/field yang sama dan keduanya dipanggil bersamaan pada satu query sehingga jika tidak memakai Alias, maka sistem database tidak mengetahui yang mana kolom/field milik Tabel 1 dan kolom/field milik Tabel 2.

Mari kita bahas satu persatu maksud dari sub query diatas: 

SELECT T2.Nama_Kota
Yaitu Menampilkan Kolom/Field Nama_Kota

FROM Data_Kota T2
Dari Tabel Data_Kota dengan Alias T2

WHERE T1.Kode_Kota = T2.Kode_Kota
Yang mana Kode_Kota pada tabel 1(Identitas) sama dengan Kode_Kota pada tabel 2(Data_Kota)

AS Nama_Kota
Yang hasil dari querynya diberi nama kolom Nama_Kota

Query tersebut ada di dalam query :
SELECT Nama, No_Telp, Pekerjaan, Kode_Kota, (XXXXXXXXX) FROM Identitas T1;

Jika dijalankan maka hasil yang di dapat yaitu :
Nama No_Telp pekerjaan Kode_Kota Nama_Kota
Dwiky 0219857348 Developer JKT01 JAKARTA
Ilham 0219378474 Developer JKT01 JAKARTA
Wilda 0219374556 Akuntan BDG01 BANDUNG
Apabila anda baru mempelajari perintah query, untuk lebih memudahkan ada baiknya anda membaca terlebih dahulu Pengertian DDL, DML dan SQL. 

Comments

Popular Posts