Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Baris yang Cekap dengan Nilai Terendah untuk Setiap Peniaga dalam 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!