MySQL INSERT INTO语句

时间:2010-07-30 21:05:55

标签: mysql insert-update

我需要一些插入语句的帮助。

我有:

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。有什么建议吗?

2 个答案:

答案 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是否支持更新连接,重复性更低,效率更高。