2017-04-05 70 views
0

我有表addressescountry_iso2_codecountry_id字段,并且表countriesiso2_code字段。现在country_idiso2_code字段为空。我想从addresses表中将country_iso2_code转移到country表中的iso2_code,并设置表与country_id字段之间的关系。请帮助找到解决方案。两个保存关系的拆分表

例子:
addresses
ID | country_iso2_code | country_id
1 |美国| null
2 |美国| null
3 | FR |空

结果:
addresses
ID | country_iso2_code | country_id
1 |美国| 1
2 |美国| 2
3 | FR | 3
countries
ID | iso2_code
1 | US
2 | US
3 | FR

+0

当然,我们展示样本数据和预期输出,也许你会得到一个回答。 –

+0

下面是示例。 –

+0

为什么'US'有两个不同的'country_id'值(1和2)? –

回答

1

只需创建countries,如果它不存在,填充它使用INSERT INTO ... SELECT,然后更新addresses

CREATE TABLE countries (id int, iso2_code varchar(10)); 

INSERT INTO countries (id, iso2_code) 
SELECT id, country_iso2_code 
FROM addresses 

UPDATE addresses 
SET country_id = id 
+0

谢谢。这就是我想要的。但首先我需要执行'INSERT'命令,然后'更新''country_id',因为我在这个字段上有FK。 –