MySQL Tutorial SubQuery dengan Contoh

Apa itu subkueri?

Sub kueri adalah kueri pemilihan yang terdapat di dalam kueri lain. Kueri pemilihan dalam biasanya digunakan untuk menentukan hasil kueri pemilihan luar.

Mari kita lihat sintaks sub kueri –

MySQL Subkueri

Keluhan umum pelanggan di Perpustakaan Video MyFlix adalah rendahnya jumlah judul film. Manajemen ingin membeli film untuk kategori yang jumlah judulnya paling sedikit.

Anda dapat menggunakan kueri seperti

SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);

Ini memberikan hasil

MySQL Subkueri

Mari kita lihat cara kerja kueri ini

MySQL Subkueri

Hal di atas merupakan salah satu bentuk Subkueri Baris. Dalam sub-kueri seperti itu, kueri dalam hanya dapat memberikan SATU hasil. Operator yang diperbolehkan saat bekerja dengan subkueri baris adalah [=, >, =, <=, ,!=, ]

Mari kita lihat contoh lainnya,

Misalkan Anda menginginkan Nama dan Nomor Telepon anggota yang telah menyewa film dan belum mengembalikannya. Setelah Anda mendapatkan Nama dan Nomor Telepon, Anda menelepon mereka untuk memberikan pengingat. Anda dapat menggunakan kueri seperti

SELECT full_names,contact_number FROM   members  WHERE  membership_number IN (SELECT membership_number FROM movierentals WHERE return_date IS NULL );


MySQL Subkueri

Mari kita lihat cara kerja kueri ini

MySQL Subkueri

Dalam hal ini, kueri dalam mengembalikan lebih dari satu hasil. Di atas adalah tipe Tsub-quer yang mampuy.

Sampai sekarang kita telah melihat dua pertanyaan, sekarang mari kita lihat contohnya permintaan tiga kali lipat!!!

Misalkan manajemen ingin memberi penghargaan kepada anggota dengan bayaran tertinggi.

Kita dapat menjalankan kueri seperti

Select full_names From members WHERE membership_number = (SELECT membership_number FROM payments WHERE amount_paid = (SELECT MAX(amount_paid) FROM payments));

Kueri di atas memberikan hasil sebagai berikut –

MySQL Subkueri

Sub-Kueri Vs Gabungan!

Jika dibandingkan dengan Joins , subkueri mudah digunakan dan dibaca. Caranya tidak serumit Bergabung

Oleh karena itu ada yang sering digunakan oleh Pemula SQL.

Namun sub-kueri memiliki masalah kinerja. Menggunakan gabungan alih-alih subkueri terkadang dapat memberi Anda peningkatan kinerja hingga 500 kali lipat.

Jika diberi pilihan, disarankan untuk menggunakan GABUNG pada sub kueri.


Sub-Kueri hanya boleh digunakan sebagai solusi cadangan ketika Anda tidak dapat menggunakan operasi GABUNG untuk mencapai hal di atas

Sub-Kueri Vs Gabungan

Kesimpulan

  • Subkueri adalah kueri yang disematkan di dalam kueri lain. Kueri yang disematkan dikenal sebagai kueri dalam dan kueri kontainer dikenal sebagai kueri luar.
  • Sub kueri mudah digunakan, menawarkan fleksibilitas tinggi, dan dapat dengan mudah dipecah menjadi komponen logis tunggal yang membentuk kueri yang sangat berguna saat pengujian dan men-debug kueri.
  • MySQL mendukung tiga jenis subkueri, subkueri skalar, baris, dan tabel.
  • Sub kueri skalar hanya mengembalikan satu baris dan satu kolom.
  • Sub kueri baris hanya mengembalikan satu baris tetapi dapat memiliki lebih dari satu kolom.
  • Subkueri tabel dapat mengembalikan beberapa baris dan kolom.
  • Subkueri juga dapat digunakan dalam kueri INSERT, UPDATE, dan DELETE.
  • Untuk masalah performa, saat mengambil data dari beberapa tabel, sangat disarankan untuk menggunakan GABUNG daripada subkueri. Sub kueri hanya boleh digunakan dengan alasan yang baik.