2014-04-21 106 views
-2

在我的訂單歷史記錄中,我目前列出了所有客戶以前的訂單,但是沒有按日期排序。 我當前的查詢是:PHP mysql排序和分組查詢

SELECT OrderItemID, Date 
FROM orderitems 
WHERE OrderID=$orderid 
GROUP BY OrderID; 

此查詢後,我用一個while循環,對發現的每一個訂單,打印在表格的過去定購。 但是我想通過'ORDER BY Date'打印過去的訂單。在GROUPBY之後,我把ORDER BY Date Desc,但在結果打印上沒有區別。

任何指導,將不勝感激。

+0

如果您按OrderID進行分組,哪個OrderItemID和日期實際上是想要檢索,如果有幾個項目? –

+2

您的查詢在幾個級別上沒有意義。您正按'OrderId'分組,但選擇'OrderItemId'。 'select'中的列不使用任何聚合函數。您只選擇一個'OrderId',然後通過它進行聚合。你可以用樣本數據和你想要的結果來編輯問題嗎? –

+1

檢查此鏈接... http://stackoverflow.com/questions/1130062/what-is-the-execution-sequence-of-group-by-having-and-where-clause-in-sql -服務器 – narasimharaosp

回答

0

既然您是用OrderID篩選記錄,那麼爲什麼您需要GROUP BY呢?

SELECT OrderItemID, Date 
FROM orderitems 
WHERE OrderID=$orderid 
ORDER BY Date DESC 
0

我不確定爲什麼OrderItems會有訂單的日期。根據文本,我懷疑你想要的東西是這樣的:

SELECT OrderID, Date 
FROM Orders o 
WHERE CustomerId = $CustomerId 
ORDER BY Date DESC;