TILSLUT 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
Forklaring:
Jeg laver en indre forespørgsel, som gengiver tabelrækkefølgen efter price ASC
i stedet for standard, lad os sige id ASC
. Når du GROUP BY
rækkerne, bruger den som standard kolonnerne fra den første række, som i dette tilfælde er den med den laveste pris.
Din løsning virkede ikke, da den måske også har valgt det første id og ikke den laveste prisrække. Den eneste kolonne, der var korrekt, var MIN( r.price ), men som du har bemærket, påvirkede funktionen ikke de andre kolonner i resultatet.