1

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

我有:

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 子句,但它不起作用。我需要插入 where my_table_a.school = my_table_b.school 。有什么建议么?

4

2 回答 2

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
于 2010-07-30T21:13:53.710 回答
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 是否支持更新连接,这会减少重复性和更有效。

于 2010-07-30T21:13:28.997 回答