我需要帮助编写 MySQL 查询。到目前为止,似乎没有一个问题符合我的需求。
我有一张order
桌子和一张order_log
桌子。在 order_log 表中,我会在每次更改订单状态时进行记录。我需要显示 order_log 表中最新状态更改的列表。我当前使用的查询在两个表上执行 JOIN 并获取 order.status = order_log.status 的所有内容。
这样做的问题是,有时一个订单会多次通过相同的状态。发生这种情况时,我的查询会获取 order_log 表中该订单和该状态的每个条目,但我只想要最近的日志。
我尝试编写一个新的 JOIN 查询来获取 order_log 日期条目的最大值,但它只返回 1 个条目。这就是我所拥有的。
SELECT *
FROM order_status_log AS l
JOIN orders AS o ON ( l.order_id = o.id )
WHERE l.status = o.status
AND l.date = (
SELECT MAX( date )
FROM order_status_log l2
JOIN orders AS o2 ON ( l2.order_id = o2.id )
)
有任何想法吗?