使用另一个表中的列值填充MySQL中的列

时间:2015-01-20 21:24:35

标签: mysql database join insert sql-update

我正在尝试在SQL中做一些我认为非常基本的东西,但我似乎无法弄明白。

我有两张桌子:

省份 - >

 id                                  |   name     |  pCode |  country_id  | cCode
78840113-a0e5-11e4-8237-de7fe3f523cf |  Alabama   | AL     | 1228         |
7884030c-a0e5-11e4-8237-de7fe3f523cf |  Alaska    | AK     | 1228         |
788403ea-a0e5-11e4-8237-de7fe3f523cf |  Arizona   | AZ     | 1228         |
788404a2-a0e5-11e4-8237-de7fe3f523cf |  Arkansas  | AR     | 1228         |

和国家/地区 - >

iso_code  | name                   | country_id
AD        | Andorra                | 1005           
AE        | United Arab Emirates   | 1225           
AF        | Afghanistan            | 1001           
AG        | Antigua and Barbuda    | 1009          

我只想让省份中的cCode列填充相应的iso_code(如果省份和国家/地区的country_id相同)。

我已经尝试了很多东西,甚至没有在这里写我的代码,我甚至不知道哪个方向是正确的方法(加入,插入,更新??)。我完全卡住了请帮助我!

2 个答案:

答案 0 :(得分:5)

如果你真的使用Mysql:

update Provinces p
inner join countries c on
    p.country_id = c.country_id
set p.cCode = c.iso_code

答案 1 :(得分:2)

您可以在此处使用UPDATE...JOIN语法:

UPDATE provinces JOIN countries USING (country_id)
  SET provinces.cCode=countries.iso_code