Subquery dalam Catatan Tabel Tunggal:
Buat tabel bernama 'hewan' di database 'data.' Tambahkan catatan di bawah ini tentang hewan yang berbeda dengan sifat yang berbeda seperti yang ditampilkan. Ambil rekaman ini menggunakan kueri SELECT sebagai berikut:
>> PILIH * DARI data.hewan;
Contoh 01:
Mari kita ambil record terbatas dari tabel ini menggunakan subquery. Dengan menggunakan query di bawah ini, kita tahu bahwa subquery akan dieksekusi terlebih dahulu, dan outputnya akan digunakan dalam query utama sebagai input. Subquery hanya mengambil usia di mana harga hewan adalah 2500. Umur seekor hewan yang harganya 2500 adalah 4 dalam tabel. Kueri utama akan memilih semua catatan tabel di mana usianya lebih besar dari 4, dan hasilnya diberikan di bawah ini.
>> PILIH * DARI data.hewan WHERE Age > (PILIH Umur DARI data.hewan WHERE Harga='2500' );
Contoh 02:
Mari kita gunakan tabel yang sama dalam situasi yang berbeda. Dalam contoh ini, kita akan menggunakan beberapa Fungsi alih-alih klausa WHERE di subquery. Kami telah mengambil rata-rata dari semua harga yang diberikan untuk hewan. Harga rata-rata adalah 3189. Permintaan utama akan memilih semua catatan hewan yang memiliki harga lebih dari 3189. Anda akan mendapatkan output di bawah ini.
>> PILIH * DARI data.hewan WHERE Harga > ( PILIH AVG(Harga) DARI data.hewan);
Contoh 03:
Mari kita gunakan klausa IN dalam kueri SELECT utama. Pertama-tama, subquery akan mengambil harga lebih dari 2500. Setelah itu, permintaan utama akan memilih semua catatan tabel 'hewan' di mana harganya terletak pada hasil subquery.
>> PILIH * DARI data.hewan DI MANA Harga ( PILIH Harga DARI data.hewan MANA Harga > 2500 );
Contoh 04:
Kami telah menggunakan subquery untuk mengambil nama hewan yang harganya 7000. Karena hewan itu adalah sapi, maka nama 'sapi' akan dikembalikan ke pertanyaan utama. Dalam kueri utama, semua catatan akan diambil dari tabel di mana nama hewan adalah 'sapi'.' Karena kami hanya memiliki dua catatan untuk 'sapi' hewan, itu sebabnya kami memiliki output di bawah ini.
>> PILIH * DARI data.hewan WHERE Name = ( PILIH Nama DARI data.hewan WHERE Harga='7000' );
Subquery dalam Beberapa Catatan Tabel:
Asumsikan dua tabel di bawah ini, 'siswa' dan 'guru', di database Anda. Mari kita coba beberapa contoh subquery menggunakan dua tabel ini.
>> PILIH * DARI data.siswa;>> PILIH * DARI data.guru;
Contoh 01:
Kami akan mengambil data dari satu tabel menggunakan subquery dan menggunakannya sebagai input untuk kueri utama. Ini berarti bahwa kedua tabel ini dapat berhubungan dalam beberapa cara. Pada contoh di bawah ini, kami telah menggunakan subquery untuk mengambil nama siswa dari tabel 'siswa' di mana nama guru adalah 'Samina.' Kueri ini akan mengembalikan 'Samina' ke tabel kueri utama 'guru.' Permintaan utama kemudian akan memilih semua catatan yang terkait dengan nama guru 'Samina.' Karena kami memiliki dua catatan untuk nama ini, oleh karena itu kami mendapatkan hasil ini.
>> PILIH * DARI data.guru WHERE TeachName = ( PILIH TeachName FROM data.siswa WHERE TeachName = 'Samina' );
Contoh 02:
Untuk menguraikan subquery dalam kasus tabel yang berbeda, coba contoh ini. Kami memiliki subquery yang mengambil nama guru dari tabel siswa. Nama harus memiliki 'i' di posisi mana pun dalam nilainya. Ini berarti, semua nama di kolom TeachName yang memiliki nilai 'i' akan dipilih dan dikembalikan ke kueri utama. Kueri utama akan memilih semua catatan dari tabel 'guru' di mana nama guru berada di output yang dikembalikan oleh subquery. Karena subquery mengembalikan 4 nama guru, itu sebabnya kami akan memiliki catatan semua nama ini yang berada di tabel 'guru.'
>> PILIH * DARI data.guru WHERE TeachName IN (PILIH TeachName FROM data.siswa WHERE TeachName LIKE '%i%' );
Contoh 03:
Perhatikan dua tabel di bawah ini, 'order' dan 'order1'.
>> PILIH * DARI data.memesan;>> PILIH * DARI data.pesanan1;
Mari kita coba klausa APAPUN dalam contoh ini untuk menguraikan subquery. Subquery akan memilih 'id' dari tabel 'order1', dimana kolom 'Status' memiliki nilai 'Unpaid.' 'id' bisa lebih dari 1. Ini berarti lebih dari 1 nilai akan dikembalikan ke kueri utama untuk mendapatkan hasil 'pesanan' tabel. Dalam hal ini, 'id' apa pun dapat digunakan. Kami telah mendapatkan output di bawah ini untuk kueri ini.
>> PILIH Item, Penjualan, id DARI data.pesan WHERE id= APAPUN (PILIH id DARI data.order1 WHERE Status= 'Belum dibayar' );
Contoh 04:
Asumsikan Anda memiliki data di bawah ini dalam tabel 'order1' sebelum menerapkan kueri apa pun.
>> PILIH * DARI data.pesanan1;
Mari kita terapkan kueri dalam kueri untuk menghapus beberapa catatan dari tabel 'order1'. Pertama, subquery akan memilih nilai 'Status' dari tabel 'order' dimana Item tersebut adalah 'Book.' Subquery mengembalikan 'Dibayar' sebagai nilainya. Sekarang kueri utama akan menghapus baris dari tabel 'pesanan1' di mana nilai kolom 'Status' adalah 'Berbayar.'
>> HAPUS DARI data.order1 WHERE Status = ( PILIH Status DARI data.pesan WHERE Item = 'Book' );
Setelah memeriksa, kami sekarang memiliki catatan di bawah ini tetap di tabel 'order1' setelah eksekusi kueri.
>> PILIH * DARI data.pesanan1;
Kesimpulan:
Anda telah bekerja secara efisien dengan banyak subkueri dalam semua contoh di atas. Kami harap semuanya jelas dan bersih sekarang.