下面这条语句在ACCESS2000的查询中可以查询到记录,
select A.ID,B.Name from A
left outer join B (A.ID=B.CID)
但是加上一个条件B.KCName='AAAA'之后,在一些机上能查得出,在一些机上就查不出,只有B.KCName='AAAA'才查得出,而这条语句应该是可以查询A表所有记录的,请问为什么会这样?怎么解决?谢谢!!
select A.ID,B.Name from A
left outer join B (A.ID=B.CID and B.KCName='AAAA')

解决方案 »

  1.   

    select A.ID,B.Name from A
    left outer join on A.ID=B.CID
      

  2.   

    select A.ID,B.Name from A
    left outer join B where A.ID=B.CID and B.KCName='AAAA'
      

  3.   

    上面做了
    select A.ID,B.Name from A
    left outer join B on A.ID=B.CID
      

  4.   

    Sorry,上面写少一个ON,语句本身没有错,只是在不同机有不同结果。
    select A.ID,B.Name from A
    left outer join B ON (A.ID=B.CID)select A.ID,B.Name from A
    left outer join B ON (A.ID=B.CID and B.KCName='AAAA')
      

  5.   

    就是有的查到所有A表数据,B表没有对应记录时Name的值为Null,有的只能查到B.KCName='AAAA'的数据!就是相当于left outer join改成inner join的结果。
      

  6.   

    select A.ID,B.Name from A,B
    where A.ID=B.CID 
          and upper(B.KCName)='AAAA'