选择上次邮件超过30天的用户

时间:2015-07-29 18:27:22

标签: mysql

我有一个mysql表messages,其中列user_idmessagecreated_attype

我需要选择上次发布超过30天类型= 1的消息的所有用户

我试过了:

SELECT user_id FROM messages WHERE type=1 AND MAX(created_at) < DATE_SUB(NOW(), INTERVAL 30 day) 这给了我错误:

invalid use of group function

1 个答案:

答案 0 :(得分:1)

错误是由于使用了MAX,它是where子句中的聚合函数。使用MAX是正确的,但对每个用户而言。也就是说,首先按用户分组,然后使用MAX条件。尝试:

SELECT user_id 
FROM messages 
WHERE type=1 
group by user_id
having MAX(created_at) < DATE_SUB(NOW(), INTERVAL 30 day)