gpt4 book ai didi

php - 具有两个日期约束的一对多查询

转载 作者:行者123 更新时间:2023-11-29 01:44:24 25 4
gpt4 key购买 nike

我必须为一种版本控制系统编写报告查询,我需要在其中检索最新版本的基于日期的报告变体。简化的表结构是:

items_register: ir_id (primary, auto inc), ir_name (varchar)
items: i_id (primary, auto inc), i_register_id (int), i_version_name (varchar), i_datetime (datetime), i_date_expiry (datetime)

items_register 中的每个条目都有多个关联的版本,作为条目存储在 items 表中 - i_datetime 的最大值是最新版本。

我想从 items_register 中检索条目,其中最新版本(item)在请求的日期($f_date)之后具有 i_date_expiry。

我想我需要以某种方式加入表格,按 i_datetime 对项目进行排序,将它们限制为 1 以便我获得最新版本,然后检查 i_date_expiry 是否在 $f_date 之后并检索字段(如果是)。

我要检索的字段是 items_register.ir_id、items_register.ir_name、items.i_version_name、items.i_datetime。

TIA 寻求任何帮助。

最佳答案

您似乎在搜索“groupwise max”模式。

对您的问题中仍不清楚的事情做出一些假设,我认为这可能是您正在寻找的查询:

SELECT items_register.ir_id, items_register.ir_name, 
items.i_version_name, items.i_datetime
FROM items_register
JOIN
(
SELECT items.i_register_id,
MAX(items.i_datetime) AS most_recent_item_datetime
FROM items
WHERE items.i_date_expiry > '$f_date'
GROUP BY items.i_register_id
) AS item_date ON item_date.i_register_id = items_register.ir_id
JOIN items ON items.i_register_id = items_register.ir_id
AND items.i_datetime = item_date.most_recent_item_datetime

请记住,这假设 $f_date 是一个字符串,它符合 this documentation page 中规定的日期时间和时间戳文字标准(不是日期文字!) .

关于php - 具有两个日期约束的一对多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com