sql语句实现一张表中插入另一张表数据

时间:2022-04-08 14:47:42

1、情况一:当两张表的字段完全相同的时候

这个时候要先怀疑为什么会建两张字段完全相同的表,如果确实是需要两张字段完全相同的表,插入的sql语句如下:

insert into 表一 select * from 表二;

如果不想要某个字段重复的数,插入的sql语句如下:

insert into 表一 select * from 表二 where 表一的某个字段 not in(select 对应字段 from 表二);

如果只想插入表二字段值特定的参数,插入的sql语句如下:

insert into 表一 select * from 表二 where 表二的字段=值;

2、情况二:当两张表的字段不完全相同的时候

当我想把表二的字段一字段二插入到表一的字段一二中去,但是表一中还有字段三,所以在插入的时候我们可以对表二添加一个自定义的字段三,插入的sql语句如下:

insert into 表一 select 字段一,字段二,3 as 字段三 from 表二;

给你们讲个例子:我有一张用户角色表,里面有用户id,角色id。我还有一张用户表,里面有用户id。我现在要将每个用户都加上相同角色,怎么办,如果有上万个用户的话一句句写插入语句是不现实的,我们可以这么写:

insert into 用户角色表 select 用户表的用户id,角色id from 用户表;这里的角色id就是你角色表里的某个角色id

当插入的是表一的部分表的时候,插入的sql语句如下:

insert into 表一(字段一,字段二,) select 字段一,字段二 from 表二;


重点是运用好select语句对每条数据后面插入一个自定义的常量这个方法:select a,b,常量 from 表