这个语句的意思是:从一个表中通过条件查询出需要的数据之后插入到另外一张表中,进行存储。
sql:insert into tablename2 (id) as select id from tablename1 where id>5;
解释:上面语句的意思就是从tablename1中读取出来id大于5的id字段,之后插入到tablename2表中(as字段可以省略)。
备注:查询表中的字段结果必须与插入字段表字段类型一致。
insert into b select * from a where not exists(select 1 from b where a.id=b.id)
另外,not in的效率太低,劝楼主不要使用。
INSERT INTO 语句用于向表格插入新行
INSERT INTO 表名称 VALUES (值1, 值2,....)
我指定所要插入数据列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
试试这样 where a.id not in (select id from b)
标准的语法是这样的:
insert into b
select a.*
from a join b on a.id<>b.id;