我需要一些插入语句的帮助。
我有:
my_table_a:
School Latitude Longitude
Old School 38.6... -90.990...
New School 38.6... -90.990...
Other School 38.6... -90.990...
Main School 38.6... -90.990...
my_table_b:
School Latitude Longitude
City School
Old School
Central School
New School
Other School
我需要将my_table_a中的纬度和经度插入my_table_b,其中学校名称之间存在匹配。问题是表A没有表B的所有学校,反之亦然。
我尝试了一个WHERE子句,但它没有用。我需要插入my_table_a.school = my_table_b.school。有什么建议吗?
答案 0 :(得分:2)
使用ANSI-92语法:
UPDATE TABLE_B
JOIN TABLE_A ON TABLE_A.school = TABLE_B.school
SET latitude = TABLE_A.latitude,
longitude = TABLE_A.longitude
使用ANSI-89语法:
UPDATE TABLE_B, TABLE_A
SET latitude = TABLE_A.latitude,
longitude = TABLE_A.longitude
WHERE TABLE_A.school = TABLE_B.school
答案 1 :(得分:1)
你真的想插入或更新吗?
怎么样?
UPDATE my_table_b
set latitude = (select latitude from my_table_a where my_table_a.School = my_table_b.School),
longitude = (select longitude from my_table_a where my_table_a.School = my_table_b.School)
where exists(select 1 from my_table_a where my_table_a.School = my_table_b.School)
这将是通用SQL。我不确定mysql是否支持更新连接,重复性更低,效率更高。