MySQL将列填充为组成表列的总和

时间:2015-12-15 13:33:59

标签: mysql

我有一个带有2个表的MySQL数据库。第一个包含两点之间的时间和距离信息。第二个表包含共同形成主时间和距离信息的原子指令。例如,主人掌握从巴黎到里尔(总距离,时间等)的高级数据,第二个表(leg_table)包含他们个人时间和距离的确切道路。我想检查表格是否已正确填充。

我希望在主表中填充一列,它是所有相关leg_table部分的总和。主服务器中的主键是第二个表中的外键。 leg_table数据的长度可变(例如,某些路由包含2条腿,其他路径包含更多)。

我尝试了以下内容:

update master set master.distance_check = (select sum(leg_table.leg_distance from leg_table where leg_table.request_no = master.request_no));

但我明白了:

ERROR 1064 (42000):

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您使用join语句进行的更新不正确,您可以尝试

update master m 
join (
 select sum(leg_distance) as leg_distance,request_no
 from leg_table 
 group by request_no
)l 
on m.request_no = l.request_no
set m.distance_check = l.leg_distance