Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consultar dois db usando group by e exibir informações detalhadas


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.