Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Cekap Mencari Rekod dengan Nilai Tertinggi atau Terendah Setiap Kumpulan Menggunakan Gabungan Luar Kiri?

Bagaimana untuk Cekap Mencari Rekod dengan Nilai Tertinggi atau Terendah Setiap Kumpulan Menggunakan Gabungan Luar Kiri?

DDD
Lepaskan: 2024-12-06 19:50:13
asal
904 orang telah melayarinya

How to Efficiently Find Records with the Highest or Lowest Value Per Group Using a Left Outer Join?

Dapatkan Rekod dengan Nilai Tertinggi/Terkecil Setiap Kumpulan Menggunakan Sertaan Cekap

Semasa menggunakan pangkat untuk mencari rekod dengan nilai tertinggi atau terkecil bagi setiap kumpulan adalah mungkin, pendekatan yang lebih cekap dan mudah adalah dengan menggunakan bahagian luar kiri sertai.

Contoh untuk Nilai Tertinggi:

Untuk mendapatkan semula rekod dengan OrderField tertinggi bagi setiap kumpulan, ikut langkah berikut:

  1. Sertai Jadual dengan dirinya sendiri dengan syarat OrderField rekod sasaran adalah lebih rendah daripada rekod luar OrderField:
SELECT t1.*
FROM `Table` AS t1
LEFT OUTER JOIN `Table` AS t2
  ON t1.GroupId = t2.GroupId AND t1.OrderField < t2.OrderField
Salin selepas log masuk
  1. Semak nilai nol dalam lajur yang dicantumkan. Jika gabungan mengembalikan batal, ini bermakna tiada rekod dengan OrderField yang lebih tinggi, menunjukkan bahawa t1 mempunyai nilai tertinggi.

Pertimbangan Tambahan:

  • Jika berbilang rekod mempunyai OrderField tertinggi yang sama, pertanyaan akan mengembalikan kesemuanya. Untuk memastikan satu rekod dikembalikan, syarat lanjut boleh ditambah.
  • Pengindeksan yang betul pada lajur GroupId dan OrderField adalah penting untuk prestasi optimum.

Mengelakkan Kedudukan dan Subqueries:

Menggunakan gabungan luar kiri menghapuskan keperluan untuk pangkat dan subqueries, membawa kepada prestasi yang lebih baik. Seperti yang ditunjukkan sebelum ini, kaedah bergabung dengan ketara mengatasi pendekatan berasaskan subkueri.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Rekod dengan Nilai Tertinggi atau Terendah Setiap Kumpulan Menggunakan Gabungan Luar Kiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan