MySQL:仅选择在集合中找到的最早日期


MySQL: Select only the earliest date found in a set

我必须编写一个导出函数,用于创建商店订单的CSV文件,该文件在特定时间范围内附加了特定状态。问题是,一种状态(如状态 ID 32)可以在同一顺序中多次出现,但只有最早添加的状态是相关的。

这是我到目前为止的代码:

select * FROM orders_status_history
JOIN orders_total ON (
    orders_total.orders_id = orders_status_history.orders_id 
    AND orders_total.class = "ot_total"
)
JOIN orders ON (
    orders.orders_id = orders_status_history.orders_id
)
WHERE orders_status_history.orders_status_id IN(32, 21, 56, 45)
  AND orders_status_history.date_added >= "' . $start . '" 
  AND orders_status_history.date_added <= "' . $end . '" 

这已经按预期工作,目标是仅在匹配状态也是最早添加到订单中的记录时才返回记录。

非常简单的

sql 添加。在最后添加

ORDER BY orders_status_history.date_added Limit 0,1