有一个表AA,一个表BB
然后如下
AA
字段: a   b   二个字段
值     1   1
       1   2
       1   3BB
字段  b   c   二个字段
值     2  1
       2   2
       
好了,如果我用左连接查询
select * from AA left Join BB on AA.b =BB.b
那么结果应该是
a   b   c
1   1   
1   2   1
1   2   2
1   3   对吧,这应该是对的噢,呵呵现在我试了试
如果select * from AA left Join BB on AA.b =BB.b where BB.c = 2
的话,那么就只有选出1   2   2这么一条记录啦我现在想找出的是1 3 4那些个记录,怎么办呢??
就是说满足BB.c = 2这些个条件,或者c为空,没有连接过来的那些个记录

解决方案 »

  1.   

    就是说如何查出a   b   c
    1   1   1   2   2
    1   3   
    这些记录
      

  2.   

    select * from AA left Join BB on AA.b =BB.b where BB.c != 2
      

  3.   

    select * from AA left Join BB on AA.b =BB.b where BB.c != 1
      

  4.   

    select * from AA left Join BB on AA.b =BB.b and BB.c!= 1
      

  5.   

    tryselect * from AA left Join BB on AA.b =BB.b where BB.c = 2 Or BB.c Is null
      

  6.   


    Create Table AA
    (a Int,
     b Int)
    Insert AA Select        1,   1
    Union All Select        1,   2
    Union All Select        1,   3Create Table BB
    (b Int,
     c Int)
    Insert BB Select        2,  1
    Union All Select        2,   2
    GO
    select AA.*,BB.c from AA left Join BB on AA.b =BB.b where BB.c = 2 Or BB.c Is null
    GO
    Drop Table AA,BB
    --Result
    /*
    a b c
    1 1 NULL
    1 2 2
    1 3 NULL
    */