有一个表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为空,没有连接过来的那些个记录
然后如下
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 1 1 2 2
1 3
这些记录
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
*/