A表3个字段Aa,Ab,Ac
B表2个字段Ba,Bb
想要一个count查询
条件是Aa=Ba,并且Ba=Bb,并且不包括Aa=Ba本身的这条数据。
谢谢各位大虾了。
新手设计SQL有点笨笨的。呵呵

解决方案 »

  1.   

    前面是且,后面又非,结果,两手空空,仅获NULL.
      

  2.   

    没有矛盾啊,其实就是数出B表中,除了用作条件的本条数据,其他数据中Ba和Bb相等的数据有几条
      

  3.   


    A表3个字段Aa,Ab,Ac
    B表2个字段Ba,Bb
    想要一个count查询
    条件是Aa=Ba,并且Ba=Bb,并且不包括Aa=Ba本身的这条数据。
     
    --按你的说话你且试试,得不到结果的.
    SELECT B.* 
    FROM A,B
    WHERE A.Aa=B.Ba AND B.Ba=B.Bb
    AND NOT EXISTS (SELECT * FROM B WHERE A.Aa=B.Ba)
      

  4.   

    这样举个例子吧
    Aa Ab Ac    Ba Bb 
    1  2  3     1  1
    4  5  6     2  2
    7  8  9     3  4
    这样两个表,想要查询的就是 Aa(1)=Ba(1)and Ba(2)= Bb(2)这条数据,但是呢,还不要包括Ba(1)本身的这条数据。大概就是这样了
      

  5.   

    不会是空的吧,我用not in 可以实现,就是想找个简单的方法
      

  6.   

    NOT IN 与NOT EXISTS是一个效果.
      

  7.   

    条件是Aa=Ba,并且Ba=Bb 
    查出来的集合 

    Aa=Ba 查出来的集合 子集  
      

  8.   

    你想一想:
     Aa(1)=Ba(1)and Ba(2)= Bb(2)
    Aa(1)=Ba(1)这个条件就已经把Ba(2)= Bb(2)这条数据过滤了 怎么可能还有的判断呢?
    你把你的T-SQL语句贴出来我们也看看..
      

  9.   

    这样啊select count(1) 
    from B表 where Ba=Bb and Ba not in(select Aa from A表)
      

  10.   

    select count(1) from B where b1 = b2 and b1 not in (select a1 from A where A.a1 = b.b1)其实我写的是这样的,就是想看看有没有效率高一点的执行方法
      

  11.   

    select count(1) 
    from B where Ba = Bb and not exists(select 1 from A where a.aa = b.Ba)