基于数据分组的特定mysql更新

时间:2012-12-10 10:34:27

标签: mysql sql join sql-update

这个让我难过。

我有两张桌子:

METERS
id | startTime

READINGS
id | meter_id | readingTime

我想要做的是在1个SQL查询中将meters.startTime更新为最低匹配readings.readingTime

我该怎么做?

2 个答案:

答案 0 :(得分:12)

像这样:

UPDATE Meters m
INNER JOIN
(
   SELECT meter_id, MIN(reading_time) lowesttime
   FROM readings 
   GROUP BY meter_id
) r ON m.id = r.meter_id
SET m.starttime = r.lowesttime;

答案 1 :(得分:2)

UPDATE METERS m SET startTime = (SELECT MIN(r.readingTime)
    FROM READINGS r
    WHERE r.meter_id = m.id)
WHERE m.id = your_id