我有一个带有两个表的MySQL DB。第一个包含两个点之间的时间和距离信息。第二个表包含原子指令,这些指令共同构成主时间和距离信息。例如,主人掌握着从巴黎到里尔的高水平数据(总距离、时间等),第二个表格(leg_table)包含了他们各自的时间和距离所要走的精确道路。我希望检查表的填充是否正确。
我希望在主表中填充一个列,它是所有相关leg_table部件的总和。主表中的主键是第二个表中的外键。leg_table数据的长度是可变的(例如,有些路由包含两条腿,而另一些则更多)。
我尝试了以下几点:
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):我做错了什么?
发布于 2015-12-15 13:36:42
您使用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_distancehttps://stackoverflow.com/questions/34290634
复制相似问题