try:
selcet bmb.bj,xsb.xm xs,nvl(jzb.xm,null) jz 
from bmb,xsb,jzb 
where bmb.xsdm=xsb.xsdm and bj=2006001 and (bmb.jzdb=jzb.jzdm or bmb.jzdb is null)

解决方案 »

  1.   

    select bmb.bj,xsb.xm xs,nvl(jzb.xm,null) jz 
    from bmb,xsb,jzb 
    where bmb.xsdm=xsb.xsdm and bj=2006001 and (bmb.jzdm=jzb.jzdm or bmb.jzdm is null)不行,得到的结果变成了如下:1 2006001 赵小 赵大
    2 2006001 钱晓 钱褡
    3 2006001 孙晓 赵大
    4 2006001 孙晓 钱褡
    5 2006001 孙晓 周大
    6 2006001 孙晓 吴大
      

  2.   

    sorry, 看错了try:
    selcet bmb.bj,xsb.xm xs,jzb.xm jz 
    from bmb,xsb,jzb 
    where bmb.xsdm=xsb.xsdm and bmb.jzdb=jzb.jzdm(+) and bj=2006001
      

  3.   

    其实你的代码只是少一个左连接符号(+)而已,建议多看看SQL的基本语法。
    selcet bmb.bj,xsb.xm xs,jzb.xm jz from bmb,xsb,jzb where bmb.xsdm=xsb.xsdm and bmb.jzdb=jzb.jzdm(+) and bj=2006001
      

  4.   

    selcet bmb.bj,xsb.xm xs,jzb.xm jz from bmb jion xsb on bmb.xsdm=xsb.xsdm left join jzb bmb.jzdb=jzb.jzdm where bj=2006001可以用左联
      

  5.   

    select bmb.bj, xsb.xm xs, jzb.xm jz
    from bmb
    join xsb
    on (bmb.xsdm = xsb.xsdm)
    left join jzb
    on (bmb.jzdm = xsb.jzdm)
      

  6.   

    selcet bmb.bj,xsb.xm xs,jzb.xm jz from bmb,xsb,jzb where bmb.xsdm=xsb.xsdm and bmb.jzdb(+)=jzb.jzdm and bj=2006001
      

  7.   

    谢谢你们热心的帮助。我是半路出家的,没有系统的学过这些东西。
    最后用
    select bmb.bj,xsb.xm xs,jzb.xm jz 
    from bmb,xsb,jzb 
    where bmb.xsdm=xsb.xsdm and bmb.jzdm=jzb.jzdm(+) and bj=2006001
    搞定了,虽然还是不太明白(+)的具体含义,但我会努力的。:)再次谢谢你们。
      

  8.   

    用左外连接
    selcet bmb.bj,xsb.xm xs,jzb.xm jz 
      from bmb,xsb,jzb 
     where bmb.xsdm=xsb.xsdm 
       and bmb.jzdm=jzb.jzdm(+)
       and bmb.bj=2006001