SQL 关于insert into select from中where的用法

2025-01-07 05:16:18
推荐回答(5个)
回答1:

这个语句的意思是:从一个表中通过条件查询出需要的数据之后插入到另外一张表中,进行存储。
sql:insert into tablename2 (id) as select id from tablename1 where id>5;
解释:上面语句的意思就是从tablename1中读取出来id大于5的id字段,之后插入到tablename2表中(as字段可以省略)。
备注:查询表中的字段结果必须与插入字段表字段类型一致。

回答2:

insert into b select * from a where not exists(select 1 from b where a.id=b.id)

另外,not in的效率太低,劝楼主不要使用。

回答3:

INSERT INTO 语句用于向表格插入新行
INSERT INTO 表名称 VALUES (值1, 值2,....)
我指定所要插入数据列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

回答4:

试试这样 where a.id not in (select id from b)

回答5:

标准的语法是这样的:
insert into b
select a.*
from a join b on a.id<>b.id;