ПРИСЪЕДИНЕТЕ СЕ към тях:
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
Обяснение:
Правя вътрешна заявка, която изобразява реда на таблицата по price ASC
вместо по подразбиране, нека кажем id ASC
. Когато GROUP BY
редовете, по подразбиране използва колоните от първия ред, който в този случай е с най-ниска цена.
Вашето решение не работи, тъй като може също да е избрал първия идентификатор, а не най-ниската цена. Единствената колона, която беше правилна, беше MIN(r.price), но както забелязахте, тази функция не повлия на другите колони в резултата.