gpt4 book ai didi

MySQL:一对多表上的条件查询

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

我有一个具有如下架构的表:

clients_actions
id | client_id | action | date_done
1 | 1 | ... | 1394785392
2 | 2 | ... | 1394786392
3 | 2 | ... | 1394787392

date_done 既可以设置在过去,也可以设置在当前 unix 时间戳的 future 。我需要选择所有“被遗忘”的客户端,这些客户端将来(在他的所有操作中)没有设置 date_done 并且最后他的操作早于 604800 秒(7 天)。客户端可以有很多操作。而且,如果可能的话,我需要在同一查询中选择他的最后一个操作(该操作是过去且超过 7 天的操作)。

如何做到这一点?

最佳答案

一种方法是这样做

select * from clients_actions 
where from_unixtime(date_done) < date_sub(now(),INTERVAL 7 day)
AND client_id
NOT IN
(
select client_id from
clients_actions
where from_unixtime(date_done) > now()
)
;

<强> DEMO

在演示中,我添加了一些具有 future 日期的数据,以便可以忽略它们,并且只需获取 7 天之前的数据即可。如果表中存在重复数据,您可以进行分组。

关于MySQL:一对多表上的条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23272282/

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