文章目录
- MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID对应)
- 背景
- 定义表
- 填充测试数据
- 跨表一 一对应拷贝列数据SQL
- 参考资料
MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID对应)
背景
新建了一张表B,需要从现有的A表的拷贝一部分字段过来,他们每行有个ID字段能一 一对应,做冗余数据。
定义表
create table t_a (
id int auto_increment primary key,
c1 int ,
c2 int
)comment '测试表t_a';
create table t_b (
id int auto_increment primary key,
c1 int ,
c2 int
)comment '测试表t_b';
填充测试数据
表A
表B
跨表一 一对应拷贝列数据SQL
set部分后面还可以加where 语句,例如 where t_b.id <1000等语句,可以加limit 语句,例如limit 10
UPDATE t_b
INNER JOIN t_a ON t_b.id = t_a.id
SET t_b.c1 = t_a.c1,
t_b.c2 = t_a.c2 ;
更新完看表B
参考资料
官方update语句文档中写了update中可使用join https://dev.mysql.com/doc/refman/5.7/en/update.html
官方join文档 https://dev.mysql.com/doc/refman/5.7/en/join.html