mysql中用一个表的数据插入到另一个表

常用的四种情况,用表A ,表B 来演示。目标表为B 表,来源表为A 表

1.如果两个表的字段一致,并且要求插入全表。

insert into 目标表 select * from 来源表;

insert into testB select * from testA

2.如果仅仅想插入相同字段的值。

insert into 目标表 (字段1,字段2) select 字段1,字段2 from 来源表;

insert into testB ( name,class) select name,class from testA;
3.如果导入目标表不存在的记录。

INSERTINTO 目标表 (字段1, 字段2, ...) SELECT字段1, 字段2, ... FROM来源表
WHERE not exists (select * from目标表 where 目标表.比较字段 =来源表.比较字段);

insert into testB (name,class) where name,type from testA where not exists (select *
from testB.class = testA.name)
4.如果导入目标表中,想自己设置某个字段的值。

INSERT INTO 目标表 (目标字段1,目标字段2,字段1, 字段2,...)select 目标字段1,目标字段2,字段1, 字段2,... FROM来源表
目标字段1,目标字段2:这是目标表比来源表多出的字段

INSERT INTO testB(name,type,address) SELECT name,status,'2019-12' FROM 
testA WHERE NOT EXISTS (SELECT * FROM testB WHERE testB.type=testA.`status`)

总结:即可以向一个表中查询不存在的列名,这里不存在的列名必须是实际值或占位符,不能是变量.(这里占位符实质上是个字符串)
如果是变量则查询的是表A中的字段。但是表A中没有该字段,所以会报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 寿子湖畔,一别函谷的轻舟; 慈义桥头,一场风花雪月的守候; 五星殿外,拨动檐雨的念珠。 思悠悠,恨悠悠, 月明独倚...
    伏案简清欢阅读 182评论 0 1
  • 我是小一,每天一篇原创第72篇 都说女孩富养,男孩穷养 穷养也好富养也罢,都不如用爱养。“爱”才是一个孩子最需要的...
    壹姐微幸福阅读 245评论 0 0
  • 『榜样的力量』16/30父母是孩子的高度时间管理重在实践, 亲子同修,预则立! 教,说文解字,“”上行下效! 欲教...
    格格那丫头阅读 291评论 0 1

友情链接更多精彩内容