我有一张桌子:
mytable:
id
userID
logDate
lastLogDate
Run Code Online (Sandbox Code Playgroud)
对于该表中的每一行,我想将'lastLogDate'列更新为每个用户的logDate的最大值...
从概念上讲,每个用户都应该有一个lastLogDate =返回的值:
select max(logDate) from mytable group by userID
Run Code Online (Sandbox Code Playgroud)
有人可以帮我写那个更新声明吗?
DWr*_*ght 47
像这样的东西?
UPDATE mytable SET lastLogDate = t.maxDateForUser
FROM
(
SELECT userid, MAX(logDate) as maxDateForUser
FROM mytable
GROUP BY userId
) t
WHERE mytable.userid = t.userid
Run Code Online (Sandbox Code Playgroud)
Mah*_*mal 10
你可以这样做:
UPDATE t
SET t.logDate = t2.LatestDate
FROM YourTable t
INNER JOIN
(
SELECT userID, MAX(LogDate) LatestDate
FROM YourTable
GROUP BY userID
) t2 ON t.userID = t2.userID;
Run Code Online (Sandbox Code Playgroud)
我不知道我是否理解正确.否则会更具体,但从我得到的,你应该做的事情:
UPDATE `mytable`
SET lastLogDate = (SELECT statement goes here)
WHERE ...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
64131 次 |
最近记录: |