日期:2014-05-17  浏览次数:20468 次

请教关于根据B表的数据来新增数据
请教一下,
假如:A、B两表中皆有数据,想把B表中,A表不存在的数据insert进去A表,三个字段,只要有一个值不同就要新增,请指教,谢谢!

A表:
姓名    书名     购买年份
陈某    AAA       2011
张某    CCC       2012


B表:
姓名    书名     购买年份 (红色为新增的)
陈某    AAA       2012
张某    CCC       2012

期望插入A表后的结果:
姓名    书名     购买年份
陈某    AAA       2011
陈某    AAA       2012
张某    CCC       2012
------解决方案--------------------

insert into a
select name,book,buydate
from b
where not exists (select 1 from a where name+'*'+book+'*'+ltrim(buydate)=b.name+'*'+b.book+'*'+ltrim(b.buydate))

------解决方案--------------------
insert into A(姓名,书名,购买年份)
select 姓名,书名,购买年份
from b 
where not exists(select 1 from A where a.姓名=b.姓名 and a.书名=b书名 and a.购买年份=b.购买年份)