【问题标题】:specific mysql update based on group by data基于分组数据的特定mysql更新
【发布时间】:2012-11-27 18:16:51
【问题描述】:

这个让我难过。

我有两张桌子:

METERS
id | startTime

READINGS
id | meter_id | readingTime

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

我该怎么做?

【问题讨论】:

    标签: mysql sql join sql-update


    【解决方案1】:

    像这样:

    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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        相关资源
        最近更新 更多