日期:2014-05-19  浏览次数:20435 次

求 一sql 關於 select * where not exist(..)
各位大俠:

        本人現在正在編一個存儲過程,要求把一個表裡a的數據   插入到另一個表b,
同時a的某些列(組合主鍵)   不能已經存在   b中。
        因為   b中部分列a中沒有,所以插入時查詢a的結果必須加入部分列的自定義值!

        在這裡我真的搞不清怎麼做。
        我的sql如下出錯!
     
        insert   into   b(b.c1,b.c2,b.c3,b.c4,b.c5)
        select   distinct   a.c1,a.c2,a.c3,CONVERT(   CHAR(23),getdate(),21), '通過 '
        from   a
        where   (a.c1,a.c2,a.c3)   not   exist(select   c1,c2,c3   from   b)


        求各位大俠幫幫忙啊!

------解决方案--------------------
insert into b(b.c1,b.c2,b.c3,b.c4,b.c5)
select distinct a.c1,a.c2,a.c3,CONVERT( CHAR(23),getdate(),21), '通過 '
from a
where not exists(select c1 from b Where c1 = a.c1 and c2 = a.c2 and c3 = a.c3)
------解决方案--------------------
你的意思是,将a表中的全部列插入到一个新建立的b表中,但是这个b表比a表中的列多,同时要b中不能存在a中的数据,判断依据是组合键不能重复
是这个意思吗?