0

私は2つのテーブルを持っています.1つはcountriesと呼ばれ、もう1つはcountryと呼ばれます。国には国と州の両方がありますが、国の ISO はありません。国テーブルには国名が ISO で含まれていますが、州は含まれていません。国テーブルの新しい ISO 列を更新し、国テーブルに基づいてデータを入力するために挿入選択を実行しようとしています (つまり、ISO をあるテーブルから別のテーブルに移動します)。

ここに私が持っているものがあります:

INSERT countries (country_iso) SELECT country.iso FROM countries,country WHERE countries.name = country.printable_name

これがすべて行ったのは、国テーブルの最後に iso を配置したことです。WHERE countries.name = country.printable_name (一致する 2 つの列) は使用しませんでした。

私が間違っていることはありますか?

ありがとう!

4

3 に答える 3

2

INSERT は新しい行を作成します。代わりに既存の行を更新したいようです。

于 2010-07-24T03:00:45.923 に答える
0

挿入ではなく、更新を実行する必要があります。

UPDATE countries set country_iso = country.iso
FROM countries INNER JOIN country on countries.name = country.printable_name

挿入は新しい行を作成し、更新は既存の行を変更します。

于 2010-07-24T03:06:58.783 に答える
0

どうですか:

UPDATE countries,country SET countries.country_iso=country.iso WHERE countries.name=country.printable_name
于 2010-07-24T03:11:49.437 に答える