两个表在不同的数据库中,表A在sql server2000中,表B在informix中,现需要查找表B中除去表A中的数据,即B与A的差集
表结构
A
id,a1,a2,a3
1,a,b,cB
id,b1,b2,b3
1,a,b,c
2,d,e,fA.id=B.id按以上查询出的结果应为 
id=2
结果绑定到dataset中即可,请各位大侠不吝赐教!!!

解决方案 »

  1.   

    informix没搞过,如果是两个sqlserver2000那就是
    use 数据库A
    select * from 数据库B.dbo.B b where not exists(select 1 from A where a1=b.b1 and a2=b.b2 and a3=b.b3) 
      

  2.   

    先把informix数据导入到sqlserver数据库里,然后再查询两表的数据差异。
    用exists或not exists比较,
      

  3.   

    怎么判断,数据量很大
    我原来这样写的,先查出sql server中的id,然后在informix数据库中用
    select * from B where id not in(),其中括号内有很多数据,结果该语句直接报错
      

  4.   

    把informix中的数据导入SQL SERVER,执行以下SQL求差
    SELECT * FROM B
    EXCEPT
    SELECT * FROM A