SQL:max(date)返回错误的匹配列

时间:2013-11-13 09:07:38

标签: mysql sql

如果我在查询下运行

select prod_id, date, price 
from product_price;

我得到了正确的结果:

3  2011-02-25 14:30:24   24000

3  2013-04-12 15:58:40   28000

3  2011-04-01 00:00:00   25000

3  2012-04-13 14:53:01   26500

3  2012-05-08 12:31:01   26500

但是当我想以匹配价格的最大日期返回时,我确实找回了最大日期列,但是价格错误(24000列),实际上应该是28000

SQL我试过

select max(date), price from product_price group by prod_id;

select max(date), price 
from product_price 
group by prod_id having max(date);

两个sql都返回以下错误的价格结果:

3  2013-04-12 15:58:40   24000

我其实应该得到。

3  2013-04-12 15:58:40   28000

知道如何以最大日期取回匹配价格吗?

由于 NIC

1 个答案:

答案 0 :(得分:2)

ORDER BY date DESC LIMIT 1可以prod_id获取最长日期,如下所示:

SELECT prod_id, date, price
FROM product_price
ORDER BY date DESC
LIMIT 1;

请在此处查看:

SQL Fiddle Demo