2012-12-10 21 views
3

這一個讓我癱瘓。特定的mysql更新根據數據分組

我有2個表像這樣:

METERS 
id | startTime 

READINGS 
id | meter_id | readingTime 

我想要做的就是更新meters.startTime最低匹配readings.readingTime在1 SQL查詢。

我該怎麼做?

回答

11

像這樣:

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; 
2
UPDATE METERS m SET startTime = (SELECT MIN(r.readingTime) 
    FROM READINGS r 
    WHERE r.meter_id = m.id) 
WHERE m.id = your_id