【问题标题】:PHP mysql Order by and Group By queryPHP mysql Order by 和 Group By 查询
【发布时间】:2014-04-21 11:32:00
【问题描述】:

在我的订单历史记录中,我目前列出了所有客户之前的订单,但不是按日期顺序排列的。 我目前的查询是:

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

在这个查询之后,我使用一个 while 循环,对于找到的每个订单,在表格中打印过去的订单。 但是我想按“ORDER BY Date”打印过去的订单。在 GROUPBY 之后,我输入了 ORDER BY Date Desc,但结果打印没有区别。

任何指导将不胜感激。

【问题讨论】:

  • 如果您按 OrderID 分组,如果有多个项目,您实际上想要检索哪个 OrderItemID 和 Date?
  • 您的查询在多个级别上都没有意义。您按OrderId 分组,但选择OrderItemIdselect 中的列不使用任何聚合函数。您只选择一个OrderId,然后按它进行聚合。您可以使用示例数据和您想要的结果编辑问题吗?

标签: php mysql sql-order-by


【解决方案1】:

既然你是用OrderID过滤记录,那为什么还要GROUP BY呢?

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

【讨论】:

    【解决方案2】:

    我不确定为什么OrderItems 会有订单日期。根据文字,我怀疑你想要这样的东西:

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

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 2019-01-21
      • 2021-02-22
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多