Access多表联接 按是/否字段进行查询时的问题
时间:2011-05-18 来源:宝络
今天只讨论一种情况,那就是进行左外联时(Left Join)
现在有两个表A(AID,BID,equal)(其中equal字段数据类型为:是/否) B(BID,name)
单独对A表进行查询时,可以用:
select * from A where equal=0
或
select * from A where equal=1
进行查询
当按B Left Join A进行查询时像这样:
select B.BID,B.name,A.AID,A.equal from B Left join A on (B.BID=A.BID) where A.equal=0
进行查询时,如果B表中有一条记录在A表中有其对应的记录,则可以取出
但当B表中的某一条记录在A表不并没有对应记录时,这种方法就行不通了,
假如A表
AID BID equal
1 1
B表
BID name
1 aaa
2 bbb
这时两表联合表就是
B.BID B.name A.AID A.equal
1 aaa 1
2 bbb
此时按上面的sql语句只能查询出第一条记录,而第二条记录却不能查询出来
如果想两条记录都查询出来可以这样写
select B.BID,B.name,A.AID,A.equal from B Left join A on (B.BID=A.BID) where A.equal=0 or A.equal is null