我有一個訂單表。每個訂單都鏈接到一個或多個購物籃項目。如何獲取最後5個唯一的產品ID?
Basic代碼:
SELECT * FROM Orders o JOIN OrderItems oi ON o.OrderNumber = oi.OrderNumber
我可以做這個限制的最後5個項目:
ORDER BY oi.CreatedDate DESC LIMIT 5
然而,在某些情況下,用戶已經橫放在同一產品的多個訂單。例如
OrderNo ItemNo ProductId
1 1 70
1 2 20
2 1 80
2 2 30
3 1 10
4 1 90
5 1 10
6 1 40
7 1 50
8 1 100
9 1 10
10 1 30
11 1 10
12 1 60
如果我能在過去五年的項目,我想最終60,10,30,10,100什麼其實我想要的是得到最後5個獨特的產品標識 - 這樣會是60,10,30,100,50.這是什麼SQL?
編輯
如果我使用GROUP BY我得到60,100,50,40,90哪裏是30?
的問題是,'ORDER BY'發生之前'集團BY'以某種方式執行。 – vulkanino 2012-03-06 12:50:53
請看我對答案的修改。 – vulkanino 2012-03-06 13:04:33