我在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);
有谁知道这样做的方法?
答案 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)
);