
sql有条件的批量插入问题
mysql数据库,需要向表A插入一批数据,一共三个字段,其中两个字段(a,b)都是确定的(x,y),另外一个字段取自另一个表B,现在需要做到将表B中某字段所有在表A中不存...
mysql数据库,需要向表A插入一批数据,一共三个字段,其中两个字段(a,b)都是确定的(x,y),另外一个字段取自另一个表B,现在需要做到将表B中某字段所有在表A中不存在的值,都插入一遍,哪位可以给我一段sql语句,谢谢了
展开
2个回答
展开全部
使用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 )
展开全部
您好,是这样的:
----------------------------------------------------------------
-- 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]
----------------结果----------------------------
/*
*/
----------------------------------------------------------------
-- 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]
----------------结果----------------------------
/*
*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询