【问题标题】:MySQL - Getting historical "snapshots" from a history tableMySQL - 从历史表中获取历史“快照”
【发布时间】:2010-09-26 05:13:00
【问题描述】:

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

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

SELECT * from order_item_history where order_item_id=4 and modified SEARCH DATE' ORDER by modified DESC limit 1

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    试试 -

    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
    

    【讨论】:

    • 感谢您的快速响应,但此查询只返回一行,我想为每个订单项限制一个
    猜你喜欢
    • 1970-01-01
    • 2022-08-08
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 2011-01-16
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多