请教关于外连接的查询语句
这样一句查询:
select *
from dlcmb LEFT OUTER JOIN dlc ON dlcmb.lclxdm+dlcmb.lch=dlc.lclxdm+dlc.lch
where dlcmb.xslbdm='11' and dlcmb.lclxdm='20' and dlcmb.jbdm='2007' and dlc.xh='2007110075'表dlcmb附加 dlcmb.xslbdm='11' and dlcmb.lclxdm='20' and dlcmb.jbdm='2007'条件后有四条记录,
表dlc附加 dlc.xh='2007110075'后有三条记录我用来外连接,为什么还是显示三条记录,请问错在哪里?谢谢

解决方案 »

  1.   

     ON dlcmb.lclxdm+dlcmb.lch=dlc.lclxdm+dlc.lch这个条件
      

  2.   

    select *
    from 
    dlcmb 
    LEFT OUTER JOIN 
    dlc ON dlcmb.lclxdm =dlc.lclxdm and dlcmb.lch=dlc.lch
      

  3.   

    select *
    from 
        dlcmb 
    LEFT OUTER JOIN 
        dlc ON dlcmb.lclxdm =dlc.lclxdm and dlcmb.lch=dlc.lch
      

  4.   

    select 
    *
    from 
    dlcmb 
    LEFT OUTER JOIN 
    dlc ON dlcmb.lclxdm=dlc.lclxdm AND dlcmb.lch=dlc.lch
    where 
    dlcmb.xslbdm='11' and dlcmb.lclxdm='20' and dlcmb.jbdm='2007' and dlc.xh='2007110075'
      

  5.   

    符合第一个条件的记录有四条,但其中一条的dlc.xh不为'2007110075',
    所以当加入第二个条件后,符合条件的记录只有三条,也就是说参与left outer运算的记录只有三条
      

  6.   

    dlcmb.lclxdm+dlcmb.lch=dlc.lclxdm+dlc.lch这一句是两个表的关联roy_88的方法我试过了还是不行,结果一样,应该是一楼说的原因,但是要如何解决啊,两个表都要筛选
      

  7.   

    我自己解决了
    select *
    from dlcmb LEFT OUTER JOIN (select * from dlc where xh='2007110075') b ON dlcmb.lclxdm+dlcmb.lch=b.lclxdm+b.lch
    where dlcmb.xslbdm='11' and dlcmb.lclxdm='20' and dlcmb.jbdm='2007' 谢谢各位
      

  8.   

    其实也不用子查询也可以解决,把and dlc.xh='2007110075'放在where前面就可以了