我的数据库中有date_created列(格式为2014-07-08 11:25:29)和用户名。我想创建一个条件语句,它将显示上周未提交新记录的用户。我从来没有真正查询过我的数据库没有发生的动作。我怎么能实现这个目标?
答案 0 :(得分:0)
SELECT username
FROM records
GROUP BY
username
HAVING MAX(date_created) < NOW() - INTERVAL 1 WEEK
但请注意,此查询不会返回尚未创建单个记录的用户。
如果您有另一个包含所有用户记录的表(包括records
中没有记录的用户记录),请使用此查询:
SELECT u.username
FROM users u
WHERE NOT EXISTS
(
SELECT NULL
FROM records r
WHERE r.username = u.username
AND r.date_created >= NOW() - INTERVAL 1 WEEK
)
在这两种情况下,请确保在records (username, date_created)
上有一个索引,以使查询能够快速运行。