MySQL MariaDB

Subkueri MySQL

Subkueri MySQL
Subquery adalah kueri SQL dalam kueri yang lebih besar yang bersifat rekursif, atau subkueri dianggap sebagai kueri internal. Sebaliknya, kueri luar disebut sebagai kueri yang menyertakan subkueri. Subquery MySQL dapat disematkan dalam kueri, termasuk SELECT, INSERT, UPDATE, atau DELETE. Selanjutnya, di dalam subquery lain, sebuah subquery dapat ditempatkan. Frase subquery harus ditutup dalam tanda kurung di mana pun ia digunakan. Kami akan mengajari Anda bagaimana dan kapan menggunakan subkueri MySQL untuk menyusun kueri yang rumit dan menjelaskan ide dari subkueri terkait. Buka shell baris perintah dari desktop Anda dan tulis kata sandi Anda untuk mulai menggunakannya. Tekan Enter dan lanjutkan.

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.

Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...
Kursor melompat atau bergerak secara acak saat mengetik di Windows 10
Jika Anda menemukan bahwa kursor mouse Anda melompat atau bergerak sendiri, secara otomatis, acak saat mengetik di laptop atau komputer Windows, maka ...
Cara membalikkan arah gulir Mouse dan Touchpads di Windows 10
Mouse dan Panel sentuhs tidak hanya membuat komputasi menjadi mudah tetapi juga lebih efisien dan tidak memakan banyak waktu. Kami tidak dapat membaya...