Tutorial SubQuery MySQL dengan Contoh

Anonim

Apa sub-pertanyaan itu?

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 query -

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

Anda dapat menggunakan kueri seperti

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

Ini memberi hasil

Mari kita lihat bagaimana query ini bekerja

Di atas adalah bentuk Row Sub-Query . Dalam sub-kueri tersebut, kueri bagian dalam hanya dapat memberikan SATU hasil. Operator yang diizinkan saat bekerja dengan subkueri baris adalah [=,>, =, <=,,! =,]

Mari kita lihat contoh lain,

Misalkan Anda menginginkan Nama dan nomor Telepon anggota orang yang telah menyewa film dan belum mengembalikan mereka. Setelah Anda mendapatkan Nama dan Nomor Telepon, Anda memanggil mereka untuk mengingatkan. 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 );

Mari kita lihat bagaimana query ini bekerja

Dalam kasus ini, kueri dalam mengembalikan lebih dari satu hasil. Di atas adalah jenis sub-quer y T abel .

Sampai sekarang kita telah melihat dua kueri, sekarang mari kita lihat contoh tiga kueri !!!

Misalkan manajemen ingin memberi penghargaan kepada anggota yang membayar paling tinggi.

Kami 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 -

Sub-Queries Vs Bergabung!

Jika dibandingkan dengan Gabungan, sub-kueri mudah digunakan dan mudah dibaca. Mereka tidak serumit Joins

Makanya ada SQL yang sering digunakan oleh pemula.

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

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

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

Ringkasan

  • Subkueri adalah kueri yang disematkan di dalam kueri lain. Kueri yang disematkan dikenal sebagai kueri dalam dan kueri wadah dikenal sebagai kueri luar.
  • Kueri sub mudah digunakan, menawarkan fleksibilitas tinggi, dan dapat dengan mudah dipecah menjadi komponen logis tunggal yang menyusun kueri yang sangat berguna saat Menguji dan men-debug kueri.
  • MySQL mendukung tiga jenis subkueri, skalar, baris, dan subkueri tabel.
  • Kueri skalar hanya mengembalikan satu baris dan satu kolom.
  • Sub kueri baris hanya mengembalikan satu baris tetapi bisa memiliki lebih dari satu kolom.
  • Subkueri tabel dapat mengembalikan beberapa baris serta kolom.
  • Subkueri juga dapat digunakan dalam kueri INSERT, UPDATE dan DELETE.
  • Untuk masalah kinerja, ketika datang untuk mendapatkan data dari beberapa tabel, sangat disarankan untuk menggunakan JOIN daripada subkueri. Sub query hanya boleh digunakan dengan alasan yang bagus.