mysql - 将表一分为二并保存关系

标签 mysql sql

我有包含 country_iso2_codecountry_id 字段的表 addresses,以及包含 iso2_code< 的表 countries/ 字段。现在 country_idiso2_code 字段为空。我想将country_iso2_codeaddresses表传输到country表中的iso2_code,并使用设置表之间的关系Country_id 字段。请帮忙寻找解决方案。

示例:
地址
编号 |国家 ISO2 代码 |国家ID
1 |美国 |空
2 |美国 |空
3 |法国 |空

结果:
地址
编号 |国家 ISO2 代码 |国家ID
1 |美国 | 1
2 |美国 | 2
3 |法国 | 3
国家
编号 | iso2_code
1 |美国
2 |美国
3 |法国

最佳答案

只需创建国家/地区(如果尚不存在),使用INSERT INTO ... SELECT 进行填充,然后更新地址:

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

关于mysql - 将表一分为二并保存关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43223741/

相关文章:

使用 HAVING 的 MySQL 查询错误地限制了结果

SQLite 'IF NOT EXISTS' 语法错误

sql - Sybase:如何连接 sybase 列中的行

python - 使用来自 CSV 的输入从 Python 运行动态查询

mysql - SUM 连接表的查询如何?

mysql - 为什么我无法引用主键?

java - 用于删除从文本字段中获取的值的 SQL 命令

sql - DB2 SQL - 可以在不对每行值使用 "or"的情况下查询值列表吗?

php - 将文本存储到数据库中并使用不同的 CSS 类发布

c# - Dapper micro ORM,数据库不可知和 MySql Guid 类型