2010-09-26 335 views
0

我有一个拥有一对多关系字段(例如orders和order_items)的MySQL数据库每次更改order_item时,记录也会插入到order_item_history表中修改字段中的时间戳。MySQL - 从历史记录表中获取历史“快照”

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

SELECT * FROM order_item_history其中ORDER_ITEM_ID = 4,修改< =“搜索日期”通过修改DESC限价令1

我不能找出是如何编写一个查询,可以像上面那样工作,除了根据order_id字段返回附加到订单的所有项目的最新版本

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

任何帮助将不胜感激。

回答

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 
+0

感谢您的快速反应,但此查询仅返回一行,我倒要限制为每个订单项目 – 2010-09-26 05:47:00