Di sini adalah artikel bagus dalam dokumentasi resmi MySQL:
kutipan:
Baris yang Memegang Maksimum Group-wise dari Kolom Tertentu
Tugas:Untuk setiap artikel, temukan dealer atau dealer dengan harga paling mahal.
Masalah ini dapat diselesaikan dengan subquery seperti ini:
SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);
Contoh sebelumnya menggunakan subkueri berkorelasi, yang bisa jadi tidak efisien (lihat Bagian 13.2.10.7, “Subkueri Berkorelasi”). Kemungkinan lain untuk memecahkan masalah adalah dengan menggunakan subquery yang tidak berkorelasi dalam klausa FROM atau LEFT JOIN.
Subkueri yang tidak berkorelasi:
SELECT s1.article, dealer, s1.price
FROM shop s1
JOIN (
SELECT article, MAX(price) AS price
FROM shop
GROUP BY article) AS s2
ON s1.article = s2.article AND s1.price = s2.price;
KIRI GABUNG:
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.article = s2.article AND s1.price < s2.price
WHERE s2.article IS NULL;
LEFT JOIN bekerja atas dasar bahwa ketika s1.price berada pada nilai maksimumnya, tidak ada s2.price dengan nilai yang lebih besar dan nilai baris s2 akan menjadi NULL.