MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID等字段对应)

本文介绍了如何在MySQL中,通过一条UPDATE语句结合JOIN操作,将表A中与表B通过ID关联的记录的特定字段复制到表B,实现冗余数据的创建。示例包括了创建表、填充测试数据以及SQL命令的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HumorChen99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值