select Insert into和Insert into select的区别

我现在是想把A表中的数据复制到B表中,但需要先看看B表中是否存在上条数据,不存在才插入,应该如何写呢?假如A表和B表中都有a,b两个字段OleDbDataReaderdr... 我现在是想把A表中的数据复制到B表中,但需要先看看B表中是否存在上条数据,不存在才插入,应该如何写呢?
假如A表和B表中都 有a,b两个字段
OleDbDataReader dr1 = hongli.DBExecuteReader("select * from [keywords] where ykeywords='" + getwords[i].Split('=')[0] + "' and nkeywords='" + getwords[i].Split('=')[1] + "'");
if (!dr1.Read())
{
hongli.DBExecuteNonQuery("Insert into [keywords](ykeywords,nkeywords)values('" + getwords[i].Split('=')[0] + "','" + getwords[i].Split('=')[1] + "')");
}
如何把这整合成一句SQL,现在是执行两次,整合后是不是会效率高一点
展开
 我来答
badkano
推荐于2018-01-23 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885367
团长

向TA提问 私信TA
展开全部

insert into相当于自定义数据数据插入,而insert into select则相当于根据其他表的数据插入到被插入的表中。

比如,有如下要被插入的表,表名test ,字段名为id 和 name

用insert into的方法

insert into test values (1,'张三')

如果用insert into select的方法

insert into test select 1,'张三'

或者所插入的数据有其他表的来源:

insert into test select id,name from 其他表
chen_hongyang
2013-11-11 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:866万
展开全部
select * into new_table from old_table
要求new_table不存在

insert into new_table
select * from old_table
要求new_table存在
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaojiaxueyu
推荐于2017-10-07 · TA获得超过153个赞
知道答主
回答量:138
采纳率:0%
帮助的人:135万
展开全部
1.INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量
2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中

若使要实现你所要的功能,为什么不使用exists呢?
更多追问追答
追答
INSERT INTO 表1
(a,b)
select a,b from 表2 where not exists(select * from 表1 where 表1.a=表2.a and 表1.b=表2.b)

测试了下,可以
追问
for (int i = 0; i < getwords.Count; i++) {
hongli.DBExecuteNonQuery("Insert into [keywords](ykeywords,nkeywords)values('" + getwords[i].Split('=')[0] + "','" + getwords[i].Split('=')[1] + "')"); }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
529669903
2018-01-23 · TA获得超过405个赞
知道小有建树答主
回答量:158
采纳率:87%
帮助的人:114万
展开全部

id假设为A,B表主键

insert into B(a, b) select a,b from A where id not in (select id from B);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式