gpt4 book ai didi

mysql - 奇怪的 MySQL 查询让我伤脑筋

转载 作者:行者123 更新时间:2023-11-29 21:16:26 27 4
gpt4 key购买 nike

好的,我有两张 table 。一个是事件,另一个是发生event 表是基本的,事件、它的 ID、它的描述等等...occurrs 表使用以下链接到 events 表事件 ID;它基本上是一个事件的时间表。例如,如果每周二发生某个事件,则数据库中每周二晚上都会发生该事件。

默认情况下,events 表中的一行没有任何时间戳,这些都在 occurrs 表中。但是,由于某种原因,我需要获取 events 表的结果,并且上面还有时间戳。因此,我想做的是使用对 events 表的查询,该查询链接到 occurrs 表中的一行。我所困惑的部分是要得到哪个事件。

如果事件在当前时间之后发生,我只想获取下一个即将发生的事件。但是,如果它是过去的事件,没有即将发生的事件,我想获取最近发生的事件(最后一个)。

有人对如何完成此任务有任何提示或提示吗?

最佳答案

一种方法是联接 occurrs 表两次,一次是无条件的并获取最大时间戳,一次是有条件的时间戳 > 当前时间并获取最小时间戳。然后,如果第二个不为空,则使用第一个,否则使用第一个。

这不是真正的代码,只是一个快速的伪代码示例:

SELECT events.eventid,
events.description,
CASE WHEN MIN(ob.timestamp) IN NOT NULL THEN MIN(ob.timestamp) ELSE MAX(oa.timestamp) END AS timestamp
FROM events
LEFT JOIN occurs oa ON events.id=oa.eventid
LEFT JOIN occurs ob ON events.id=ob.eventid and ob.timestamp>Now()
GROUP BY events.eventid, events.description

关于mysql - 奇怪的 MySQL 查询让我伤脑筋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901266/

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