2010-09-26 332 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