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句を試しましたが、機能しません。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 に答える