日期:2014-05-18  浏览次数:20423 次

还是insert两表的问题
前面问过
-------
表a和表b有相同的3个字段,aa,bb,cc

如何实现
insert 表a的数据到表b,
如果
其中表a某条数据的三个字段(组合aa+bb+cc)同时和表b的(aa+bb+cc)相同,就不插入该条数据



比如解决如下
-------------
insert into b(aa,bb,cc)
select aa,bb,cc from a
where not exists(select 1 from b where aa=a.aa and bb=a.bb and cc=a.cc)
--------------------
上面这个答案适用于b表的某条数据已经和a表的相同,然后insert的时候,相同的这条就不会插入到b。

有个问题,就是a表本身就有一条数据是重复的(这条数据b表没有),
这样按上面的句子执行的话,依然还是能插入到b表

------解决方案--------------------
SQL code
insert into b(aa,bb,cc)
select distinct aa,bb,cc from a
where not exists(select 1 from b where aa=a.aa and bb=a.bb and cc=a.cc)