sql有条件的批量插入问题

mysql数据库,需要向表A插入一批数据,一共三个字段,其中两个字段(a,b)都是确定的(x,y),另外一个字段取自另一个表B,现在需要做到将表B中某字段所有在表A中不存... mysql数据库,需要向表A插入一批数据,一共三个字段,其中两个字段(a,b)都是确定的(x,y),另外一个字段取自另一个表B,现在需要做到将表B中某字段所有在表A中不存在的值,都插入一遍,哪位可以给我一段sql语句,谢谢了 展开
 我来答
射手幽灵伊
推荐于2018-04-05 · TA获得超过2718个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:2111万
展开全部

使用not exists 语法。


insert into tableA ( a,b,c)
select x,y,CCC
from tableB a
where not exits ( select 1 from tableA f where f.c = a.CCC )
山水阿锐
2015-04-15 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.5亿
展开全部
您好,是这样的:
----------------------------------------------------------------
-- Author :DBA_Huangzj(发粪涂墙)
-- Date :2013-10-23 15:57:06
-- Version:
-- Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
-- Dec 28 2012 20:23:12
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[a]
if object_id('[a]') is not null drop table [a]
go
create table [a]([ID] int,[UserName] int)
insert [a]
select 1,600351
--> 测试数据:[b]
if object_id('[b]') is not null drop table [b]
go
create table [b]([ID] int,[Code] int)
insert [b]
select 1,7708893 union all
select 2,7708894 union all
select 3,7708895 union all
select 4,7708896 union all
select 5,7708897 union all
select 6,7708898
--------------开始查询--------------------------
INSERT INTO C(id, aid , code)
select id,(SELECT username FROM a)aid,code
from [b]

----------------结果----------------------------
/*
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式