【发布时间】:2016-04-06 18:11:58
【问题描述】:
我有一张不同日期购买的商品的表格,我只想选择每件商品的最新日期。但是当我使用这段代码时:
SELECT `pid`,`price`, MAX(`date`) FROM `products_purchase` GROUP BY `pid`
id pid 价格日期
1 6 2.50 2015-12-8
2 6 2.65 2015-11-23
3 6 3.11 2015-10-14
我查看了许多“mysql max(date) not working”的解决方案,但最后注意到它选择了正确的日期但错误的行它显示了其他行的价格。 例如,它将日期显示为 2015-12-8(这是最大日期),但价格为 2.65,来自其他行。 请帮忙。
【问题讨论】:
-
这是因为 MySQL 是一个愚蠢的数据库,它允许您选择一个不属于分组或不属于聚合的字段。它基本上选择每个 pid 的随机价格。