Sub Query adalah query nested atau sebuah query ada di dalam query. Sub query merupakan pernyataan SELECT yang merupakan bagian dari pernyataan INSERT, SELECT. Sub query digunakan untuk menangani masalah dalam query yang kompleks bahkan kita tidak tahu nilai berapa yang akan di select atau di insert. Subquery sangat berguna ketika kita ingin menampilkan data dengan kondisi yang bergantung pada data di dalam table itu sendiri.
Beberapa kegunaan lainnya dari sub-query :
- Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values).
- Meng-copy data dari satu tabel ke tabel lain
- Menerima data dari inline view
- Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
- Menghapus baris dari satu tabel berdasarkan baris dari tabel lain
Aturan penggunaan sub-query :
SELECT SELECT_LIST FROM TABLE WHERE EXPRESI OPERATOR (select select_list from table WHERE EXPRESI OPERATOR 'VALUE')
Contoh penerapannya adalah misalnya kita akan menampilkan nama mahasiswa yang mempunyai nilai matakuliah tertinggi pada matakuliah basis data dengan kode Matakuliah mk003, berikut ini tabel nya :
Tabel mahasiswa | |
nim | nama_mahasiswa |
001 | Indra |
002 | Ardi |
003 | Robi |
Tabel nilai | ||
nim | kode_mk | value |
001 | mk001 | 90 |
001 | mk003 | 80 |
002 | mk002 | 70 |
002 | mk003 | 90 |
003 | mk003 | 70 |
Tabel mata_kuliah | |
kode_mk | nama_mk |
mk001 | algoritma |
mk002 | pemrograman |
mk003 | basis data |
Untuk melakukan hal tersebut kita harus menggunakan sub Query untuk menampilkan nama yang mempunyai nilai matakuliah tertinggi pada matakuliah basis data dengan kode Matakuliah mk003. adalah
SELECT mahasiswa.nama_mahasiswa,nilai.value FROM mahasiswa,nilai,mata_kuliah WHERE mata_kuliahh.kode_mk = "mk003" AND nilai.value = (SELECT max(value) FROM nilai WHERE kode_mk = "MK003");
SELECT mahasiswa.nama_mahasiswa,nilai.value FROM mahasiswa,nilai,mata_kuliah WHERE mata_kuliahh.kode_mk = "mk003" AND nilai.value = disebut dengan Main Query dan (SELECT max(value) FROM nilai WHERE kode_mk = "MK003") disebut Sub Query
Oke cukup sekian pembahasan singkat tentang Sub-Query, silahkan kembangkan sesuai kebutuhan anda.
Sumber : codeoke
Komentar yang mengandung spam / link aktif akan secara otomatis disembunyikan. Mohon maaf atas ketidaknyamanan jika pertanyaan telat ataupun tidak terbalas karena keterbatasannya waktu. Silahkan hubungi kami di menu Contact Us. Terimakasih
EmoticonEmoticon