0

我有两张表,一张叫国家,一张叫国家。国家有国家和州,但国家没有 ISO。country 表有带 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 (这是匹配的两列)。

任何想法我做错了什么?

谢谢!

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 回答