gpt4 book ai didi

sql - 仅当没有日期距现在不到 60 天时才选择

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

我想发出一个 SQL 请求来显示用户列表,但只显示至少 60 天后未接受任务的用户。一个用户有多个用户任务附加到他身上,所以我需要查看所有这些任务并仅在 60 天后没有任务被接受时才显示该用户。

这是我目前的情况,但这是错误的,即使用户在不到 60 天前接受了任务,他也在列表中,但任务没有显示。所以这个请求只显示所有超过 60 天前接受的任务。这不是我想要的。

SELECT
u.username, u.id, u.email, date_part('days', now() - um.date_accepted) as "days since last mission"
FROM
users_user u
INNER JOIN
users_usermission um
ON
u.id=um.user_id
WHERE
date_part('days', now() - um.date_accepted) > 60

最佳答案

我认为使用相关的 not exists 谓词的查询是可行的:

SELECT 
*
FROM
users_user u
WHERE NOT EXISTS (
SELECT 1 FROM users_usermission um
WHERE u.id = um.user_id
AND um.date_accepted > CURRENT_DATE - interval '60 days'
);

这只会返回过去 60 天内没有任何任务的用户。

查看此 sample SQL Fiddle举个例子。

关于sql - 仅当没有日期距现在不到 60 天时才选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31810199/

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