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 :
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 :
1
2
3
| </div> <div style= "text-align: justify;" ><span style= "font-family: Courier New, Courier, monospace;" ><span style= "color: blue;" ><b>SELECT </b></span>Nama, No_Telp, Pekerjaan, Kode_Kota, (<span style= "color: blue;" ><b>SELECT </b></span><span style= "color: purple;" ><b>T2</b></span>.Nama_Kota <span style= "color: blue;" ><b>FROM </b></span>Data_Kota <span style= "color: purple;" ><b>T2 </b></span>WHERE <span style= "color: purple;" ><b>T1</b></span>.Kode_Kota = <span style= "color: purple;" ><b>T2</b></span>.Kode_Kota) <span style= "color: blue;" ><b>AS </b></span>Nama_Kota <b><span style= "color: blue;" >FROM</span> </b>Identitas <span style= "color: purple;" ><b>T1</b></span>;</span></div> <div style= "text-align: justify;" > |
Subquery yang dimaksud pada Query diatas yaitu :
1
2
3
| </div> <div style= "text-align: justify;" ><span style= "font-family: 'Courier New', Courier, monospace;" >(</span><span style= "color: blue; font-family: 'Courier New', Courier, monospace;" ><b>SELECT </b></span><span style= "color: purple; font-family: 'Courier New', Courier, monospace;" ><b>T2</b></span><span style= "font-family: 'Courier New', Courier, monospace;" >.Nama_Kota </span><span style= "color: blue; font-family: 'Courier New', Courier, monospace;" ><b>FROM </b></span><span style= "font-family: 'Courier New', Courier, monospace;" >Data_Kota </span><span style= "color: purple; font-family: 'Courier New', Courier, monospace;" ><b>T2 </b></span><span style= "font-family: 'Courier New', Courier, monospace;" >WHERE </span><span style= "color: purple; font-family: 'Courier New', Courier, monospace;" ><b>T1</b></span><span style= "font-family: 'Courier New', Courier, monospace;" >.Kode_Kota = </span><span style= "color: purple; font-family: 'Courier New', Courier, monospace;" ><b>T2</b></span><span style= "font-family: 'Courier New', Courier, monospace;" >.Kode_Kota) <b><span style= "color: blue;" >AS</span></b> </span><span style= "font-family: 'Courier New', Courier, monospace;" >Nama_Kota</span></div> <div style= "text-align: justify;" > |
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 |
Tidak ada komentar:
Posting Komentar