2017-04-05 59 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。 –