MySQL--如何通过关联字段同步A、B两张表的字段内容
【摘要】
一、问题说明
今天弄数据库的时候要实现通过关联字段同步两张表的字段内容
关联字段为两张表的各自的id,同步B表的b、c、d字段内容到A表的b、c、d字段内容。PS:把一张表中的某个字段内容同步到另一张表的字段,前提条件是两张表要有关联字段。
二、解决方法
2.1 建表
create table A(id int primary...
一、问题说明
今天弄数据库的时候要实现通过关联字段同步两张表的字段内容
关联字段为两张表的各自的id,同步B表的b、c、d字段内容到A表的b、c、d字段内容。
PS:把一张表中的某个字段内容同步到另一张表的字段,前提条件是两张表要有关联字段。
二、解决方法
2.1 建表
-
create table A(
-
id int primary key,
-
b varchar(16),
-
c varchar(16),
-
d varchar(16)
-
)engine=InnoDB;
-
-
create table B(
-
id int primary key,
-
b varchar(16),
-
c varchar(16),
-
d varchar(16)
-
)engine=InnoDB;
2.2 初始化数据
-
insert into A(id,b,c,d) values(1,'A-b-1','A-c-1','A-d-1');
-
insert into A(id,b,c,d) values(2,'A-b-2','A-c-2','A-d-2');
-
-
insert into B(id,b,c,d) values(1,'B-b-1','B-c-1','B-d-1');
-
insert into B(id,b,c,d) values(2,'B-b-2','B-c-2','B-d-2');
2.3 更新B表数据到A表
查询A、B表
-
select id,b,c,d from A;
-
select id,b,c,d from B;
INNER内连接实现(最简单)
-
update A INNER JOIN B ON A.id = B.id
-
set
-
A.b = B.b,
-
A.c = B.c,
-
A.d = B.d;
子查询实现
-
update A a
-
set
-
a.b = (select b.b from B b where a.id= b.id),
-
a.c = (select b.c from B b where a.id= b.id),
-
a.d = (select b.d from B b where a.id= b.id)
-
where exists (select 1 from B c where a.id= c.id);
PS:
exists 用于检查子查询是否至少会返回一行数据(即exists 指定一个子查询,检测行的存在);
where exists 该子查询实际上并不返回任何数据,而是返回值True或False
内连接、子查询实现都可以,最后查询A、B表
-
select id,b,c,d from A;
-
select id,b,c,d from B;
文章来源: blog.csdn.net,作者:吾日三省贾斯汀,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/JustinQin/article/details/79010045
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)