如何选择未使用php和mysql提交记录的用户?

时间:2014-07-08 18:46:20

标签: php mysql sql

我的数据库中有date_created列(格式为2014-07-08 11:25:29)和用户名。我想创建一个条件语句,它将显示上周未提交新记录的用户。我从来没有真正查询过我的数据库没有发生的动作。我怎么能实现这个目标?

1 个答案:

答案 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)上有一个索引,以使查询能够快速运行。