我有3列名为id
,firstTime
和lastTime
。每个id
多次出现在表中。我想为每个ID找到lastTime
的最小值,并更新属于firstTime
的所有行的id
列。
我得到每个id的最小lastTime值,但我无法写入更新firstTime列。如何更新每个ID的行?
SELECT DISTINCT id,MIN(lastTime)
FROM logs
GROUP BY id
行看起来像这样:
id firstTime lastTime
A1 NULL 2015-07-10 11:29:00
A1 NULL 2015-07-10 20:21:00
B2 NULL 2015-07-10 11:29:00
答案 0 :(得分:1)
我相信这对你有用:
UPDATE logs l1
INNER JOIN (
SELECT l.id
,MIN(l.lastTime) AS ltime
FROM logs l
GROUP BY l.id
) t ON l1.id = t.id
SET l1.firstTime = t.ltime;
答案 1 :(得分:-1)
UPDATE logs logs1
SET firstTime = (SELECT MIN(lastTime)
FROM logs logs2
WHERE logs2.id = logs1.id)