MySQL Query issue.show唯一条目的最新日期

时间:2012-08-01 12:11:02

标签: mysql

这是我的数据库的简化版本

ID#
Date (Datetime)
Customer (Varchar)
Item (Varchar)

每个客户可以拥有多个商品,每一行都有一个唯一的日期时间戳。

我正在尝试编写一个查询,以显示属于每个客户的每个项目的最新条目

如果这没有意义,那可能会更好:

例如数据。

1   1/1/12 00:00:00   Cust1  Item1 
2   2/1/12 00:00:00   Cust1  Item1 
3   3/1/12 00:00:00   Cust1  Item2 
4   2/1/12 00:00:00   Cust2  Item1 
5   3/1/12 00:00:00   Cust2  Item1 
6   4/1/12 00:00:00   Cust2  Item1 

应该显示

2   2/1/12 00:00:00   Cust1  Item1 
3   3/1/12 00:00:00   Cust1  Item2 
6   4/1/12 00:00:00   Cust2  Item1 

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

你可以这样做:

SELECT a.*
FROM   tbl a
JOIN   (
       SELECT MAX(ID) AS ID FROM tbl GROUP BY Customer, Item
       ) b ON a.ID = b.ID

每个客户获得最高ID(假设它是一个自动递增的值,最高值也是最新的),并且因为它是唯一的,我们只需加入ID上的同一个表列,仅返回每个客户的最新行。