没有唯一标识符的内部连接

inner join without unique identifier

在下面的屏幕截图中,您可以看到两个 table。在左侧,我有一个带有事故的 table,在这种情况下,ID 是唯一的,并且 ID=68 总是相同的事故。

右侧是可用的天气数据以及特定日期的温度。

但是,日期不是唯一可识别的,因为在我的例子中,一月份有五个星期六。 我想做的是在我的第一个“事故”table(空栏)中写下温度。

我知道有问题,因为我不想在我的 table 中发生五次相同的事故(id=68 应该保持唯一)。 即使温度不是 100% 正确,有没有办法加入这些数据?我对平均温度很满意,或者只使用第一个条目。

这是我的查询,它永远不会停止到 运行。

UPDATE accident_copy as a
LEFT JOIN wetterdaten as w
ON a.year = w.year
    and a.monthDE = w.month
    and a.day = w.day
    and a.hour = w.hour
SET a.Temperatur = w.Temperatur;
    

改为使用子查询来获取您当时的平均温度:

UPDATE accident_copy as a
LEFT JOIN 
   (
      SELECT avg(temperatur) temparatur, year, month, day, hour 
      FROM wetterdaten
      GROUP BY year, month, day, hour
    ) as w
ON a.year = w.year
    and a.monthDE = w.month
    and a.day = w.day
    and a.hour = w.hour
SET a.Temperatur = w.Temperatur;