MySQL:获取其他字段中最大值低于某个阈值的记录

时间:2010-12-03 21:35:12

标签: mysql sql sql-update

我在MySQL中有两个表,称之为帐号并注意:

Account
- Id
- Available (bool)

Note
- Id
- When (DateTime)
- AccountId (FKey)

我想更新最近备注低于某个阈值的帐户(比如90天前)。在SQL中,我喜欢以下内容(由于max工作的方式显然不起作用)

UPDATE 
    Account INNER JOIN Note ON Account.Id = Note.AccountId
SET
    Account.Available = true
WHERE
    Max(Note.When) < DATE_ADD(NOW(), INTERVAL -90 DAY);

有谁知道这样做的方法?

1 个答案:

答案 0 :(得分:5)

未经测试,但我认为这样可行。

UPDATE 
    Account
SET
    Account.Available = true
WHERE
    Id IN(
        SELECT 
            AccountId 
        FROM 
            Note 
        GROUP BY 
            AccountId 
        HAVING 
            Max(Note.When) < DATE_ADD(NOW(), INTERVAL -90 DAY)
    );