UNISCITI a loro:
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
Spiegazione:
Eseguo una query interna che esegue il rendering dell'ordine della tabella in base a price ASC
invece dell'impostazione predefinita, diciamo id ASC
. Quando GROUP BY
le righe, utilizza di default le colonne della prima riga, che in questo caso è quella con il prezzo più basso.
La tua soluzione non ha funzionato poiché potrebbe anche aver scelto il primo ID e non la riga del prezzo più basso. L'unica colonna corretta era MIN( r.price ), ma come hai notato quella funzione non ha influito sulle altre colonne nel risultato.