Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Baris yang Cekap dengan Nilai Terendah untuk Setiap Peniaga dalam MySQL?

Bagaimana untuk Mendapatkan Baris yang Cekap dengan Nilai Terendah untuk Setiap Peniaga dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2024-11-28 09:13:11686semak imbas

How to Efficiently Retrieve Rows with the Lowest Value for Each Dealer in MySQL?

Dapatkan Baris dengan Nilai Terendah untuk Berbilang Peniaga Menggunakan MySQL

Dalam pangkalan data dengan lajur termasuk id, nama, nilai dan peniaga, anda bertujuan untuk mendapatkan semula baris dengan nilai terendah untuk setiap peniaga yang berbeza. Semasa mencuba dengan MIN() dan GROUP BY, anda tidak menemui penyelesaian.

Penyelesaian Disyorkan:

Penyelesaian 1:

SELECT t1.* FROM your_table t1
JOIN (
  SELECT MIN(value) AS min_value, dealer
  FROM your_table 
  GROUP BY dealer
) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value

Penyelesaian 2 (Lebih pantas):

SELECT t1.* FROM your_table t1
LEFT JOIN your_table t2
ON t1.dealer = t2.dealer AND t1.value > t2.value
WHERE t2.value IS NULL

Penjelasan:

Penyelesaian 1 menggunakan subkueri untuk mencari nilai minimum bagi setiap peniaga. Ia kemudiannya bergabung dengan subkueri ini dengan jadual utama untuk mendapatkan semula baris yang sepadan.

Penyelesaian 2 memanfaatkan penyambungan sendiri untuk mencari baris dengan nilai terendah bagi setiap peniaga dengan cekap. Ia menggunakan LEFT JOIN, menyemak sama ada terdapat baris dengan nilai yang lebih rendah. Jika tidak, ia adalah nilai terendah untuk peniaga itu.

Maklumat Tambahan:

Ini ialah isu MySQL yang biasa dihadapi. Rujuk dokumentasi di sini: "Barisan Memegang Maksimum/Minimum dari Kumpulan Tertentu" untuk butiran lanjut.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Baris yang Cekap dengan Nilai Terendah untuk Setiap Peniaga dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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