Junte-se a eles:
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
Explicação:
Eu faço uma consulta interna que renderiza a ordem da tabela por
price ASC
em vez do padrão, digamos id ASC
. Quando você GROUP BY
as linhas, ele usa as colunas da primeira linha por padrão, que neste caso é a de menor preço. Sua solução não funcionou, pois também pode ter escolhido o primeiro id e não a linha de preço mais baixo. A única coluna que estava correta foi a MIN( r.price ), mas como você notou essa função não afetou as outras colunas no resultado.