MySQL - 从历史表中获取历史“快照”

时间:2010-09-26 05:13:01

标签: mysql

我有一个MySQL数据库,它有一个很多关系字段(例如order和order_items)每次更改order_item时,记录也会插入到order_item_history表中,并在修改后的字段中加上时间戳。

我需要做的是查询数据库以根据特定日期获取订单状态。要获取特定order_item的最新版本,我会

来自order_item_history的SELECT *,其中order_item_id = 4并修改了< =' SEARCH DATE '按修改后的DESC限制1订购

我无法弄清楚的是如何编写一个像上面那样工作的查询,除了根据order_id字段返回附加到订单的所有项目的最新版本

我可以通过将order_item_ids放在一个数组中并为每个数组运行查询来以编程方式在PHP中执行此操作,但我必须认为有一种方法可以从MySQL中执行此操作。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试 -

SELECT * FROM order_item o
LEFT JOIN order_item_history oh ON o.id=oh.item_id
WHERE o.id=4
ORDER BY o.id DESC
LIMIT 1