GÅ MED DEM:
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
Förklaring:
Jag gör en inre fråga som återger tabellordningen efter price ASC
istället för standard, låt oss säga id ASC
. När du GROUP BY
raderna använder den kolumnerna från den första raden som standard, vilket i det här fallet är den med lägst pris.
Din lösning fungerade inte eftersom den också kan ha valt det första id:t och inte den lägsta prisraden. Den enda kolumnen som var korrekt var MIN( r.price ), men som du märkte påverkade den funktionen inte de andra kolumnerna i resultatet.