GABUNG dengan mereka:
SELECT r.product_id, i.brand, i.name, i.category, DATE_FORMAT( r.inputTime, '%e-%b' ) AS inputTime, r.shopType, r.price AS minimum_price, r.record_id
FROM ( SELECT *
FROM itemRecord
WHERE product_id = '1'
ORDER BY price ASC, inputTime DESC) AS r
INNER JOIN itemInfo As i
ON r.product_id = i.product_id
WHERE i.id = r.product_id
GROUP BY DATE(r.inputTime)
LIMIT 0, 7
Penjelasan:
Saya melakukan kueri dalam yang membuat urutan tabel dengan price ASC
alih-alih default, katakanlah id ASC
. Saat Anda GROUP BY
baris, ini menggunakan kolom dari baris pertama secara default, yang dalam hal ini adalah yang memiliki harga terendah.
Solusi Anda tidak berfungsi karena mungkin juga telah memilih id pertama dan bukan baris harga terendah. Satu-satunya kolom yang benar adalah MIN( r.price ), tetapi seperti yang Anda perhatikan bahwa fungsi tersebut tidak memengaruhi kolom lain dalam hasil.