[英]MySQL issue with descending order
我的查詢:
$strSQL = "Select customers.*, count(ordersbase.OrderID) As Orders, ordersbase.OrderTime
From customers
Inner Join ordersbase On customers.ID = ordersbase.CustomerID
Group By customers.ID
Order By customers.ID, ordersbase.OrderTime Desc;";
訂單表:
我希望獲得的OrderTime
值為20181008000000
(降序排列的最高值),但它返回另一個值:
"0": {
"Orders": 2,
"OrderTime": "20181006000000"
},
數據以無序方式存儲。 Select
子句中的任何未聚合的列(在功能上不依賴於Group By
列),並且也未在GROUP BY
子句中顯式指定,這是不確定的。 您需要使用Max()
函數來獲取最新的訂購時間。 請閱讀: SELECT列表不在GROUP BY子句中,並且包含未聚合的列....與sql_mode = only_full_group_by不兼容
分組后,將處理Order by
。 因此,您對Order by
的使用不起作用。
請嘗試以下操作:
$strSQL = "Select customers.*,
count(ordersbase.OrderID) As Orders,
MAX(ordersbase.OrderTime)
From customers
Inner Join ordersbase On customers.ID = ordersbase.CustomerID
Group By customers.ID
Order By customers.ID";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.