Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan SELECT dalam SELECT dalam kueri mysql

Di MySQL, melakukan subquery seperti ini adalah "kueri berkorelasi". Ini berarti bahwa hasil luar SELECT tergantung pada hasil SELECT inner bagian dalam . Hasilnya adalah kueri batin Anda dieksekusi sekali per baris, yang sangat lambat.

Anda harus memfaktorkan ulang kueri ini; apakah Anda bergabung dua kali atau menggunakan dua kueri sebagian besar tidak relevan. Bergabung dua kali akan memberi Anda:

SELECT something
FROM posts
INNER JOIN tag_map ON tag_map.id = posts.id
INNER JOIN tags ON tags.tag_id = tag_map.tag_id
WHERE tags.tag IN ('tag1', ...)

Untuk informasi lebih lanjut, lihat manual MySQL di mengonversi subkueri menjadi GABUNG .

Tip:EXPLAIN SELECT akan menunjukkan kepada Anda bagaimana pengoptimal berencana menangani kueri Anda. Jika Anda melihat DEPENDENT SUBQUERY Anda harus memfaktorkan ulang, ini sangat lambat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kesalahan saat mengimpor file excel ke database

  2. Bagaimana cara mengubah waktu ke zona waktu perangkat iPhone?

  3. Bagaimana cara menggunakan Linq di C # untuk memilih string tertentu dari beberapa kolom bersarang?

  4. Mysql menghapus duplikat yang lebih lama

  5. Sertakan penghitung tambahan di set hasil MySQL