【发布时间】:2012-10-24 05:44:30
【问题描述】:
我有两个名为 Item 和 Inspection 的数据库表。一个项目有许多检查。基本上,对一个项目进行检查,检查记录它的状态是“未损坏”还是“损坏”。对每个项目进行定期检查。
我想为 Items 表中的每条记录更新一个新添加的字段,名为“last_broken_at”。它需要更新为在该项目的最旧相关检查中找到的“已创建”日期时间,其中检查“状态”字段等于“已损坏”。
虽然这绝对可以通过单个 MySQL 更新语句来实现,但需要注意的是:
如果某个项目在某个时间被修复并且检查发现该项目“没有损坏”,但后来又发现“损坏”,则该项目的“last_broken_at”字段必须更新为“created”日期时间在检查状态为“未损坏”后状态为“损坏”的检查。
基本上,Items 表中的“last_broken_at”字段必须与其名称相符,它确实必须是我们知道 Item 从“未损坏”变为“损坏”的最接近时间。
这些表格如下所示:
项目表
- ID (INT)
- 已创建(日期时间)
- 名称(VARCHAR)
- status (VARCHAR) 注意:包含项目的最新状态,根据上次检查。
- last_broken_at (DATETIME)
检查
- id (INT)
- 已创建(日期时间)
- item_status (VARCHAR)
- item_id (INT)
谢谢!!
【问题讨论】:
标签: mysql