Ste*_*ers 2 mysql sql sql-update
我在MySQL中有2个表,称他们为账号并注意:
Account
- Id
- Available (bool)
Note
- Id
- When (DateTime)
- AccountId (FKey)
Run Code Online (Sandbox Code Playgroud)
我想更新最近记录低于某个阈值的帐户(比如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);
Run Code Online (Sandbox Code Playgroud)
有谁知道这样做的方法?
小智 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)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |