2012-08-01 68 views
0

日期是一個簡化版本我的數據庫MySQL查詢issue.show最新的唯一條目

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

你可以這樣做:

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列中的相同表格,該列將僅返回每位客戶的最新行。

+0

該ID只是一個自動遞增值。 – Nerden 2012-08-01 12:31:36

+0

@ user1568527太好了。所以這應該完美。 – 2012-08-01 12:32:25

+0

此查詢不顯示所有數據,它只顯示每個客戶的最新條目。它應該顯示屬於每個客戶的每件商品的最新條目。 – Nerden 2012-08-01 12:34:05