tBase:id  name  dep  con
1   a     d    c
2   b     d    c
3   c     d1   ctData:
id  name  dep  con sex ...
1   a     d    c   f
2   b     d1   c   m
3   c     d1   c   f
4   d     d1   c   f
 
我要检查tData中的name,dep数据是不是都和tBase的name,dep匹配
例中应该显示:(未能和基础匹配的数据)
id  name  dep
2   b     d1
4   d     d1  
数据量很大,要考虑效率问题

解决方案 »

  1.   

    SELECT [id],[name],[dep] FROM tData
    EXCEPT  
    SELECT [id],[name],[dep] FROM tBase
      

  2.   

    select * from tData  a where not exists(select 1 from tBase where name=a.name and dep=a.dep)
      

  3.   

    这要求两表列数相同,可是我还要在结果中显示tData中的"添加人", 之类的信息(tBase中没有),怎么弄?
      

  4.   

    join 一下SELECT * FROM tData d
    JOIN 
    (
    SELECT [id],[name],[dep] FROM tData
    EXCEPT  
    SELECT [id],[name],[dep] FROM tBase
    ) t
    ON t.id=d.id
     你也可以再join 一下 tBase
      

  5.   

    变得非常慢,已经不能接受tdata,tBase 的 name,dep 已经加索引
      

  6.   

    对两个表增加一个字段,字段内容为checksum(name,dep)与checksum(name,dep)然后你就可以只比较这一个字段是否相同了