我有一个带有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):
我做错了什么?
答案 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