select ...
  from a,b
 where a.ProdId = b.ProdId (+)
 ...;

解决方案 »

  1.   

    select A.info ,B.info where A ,B
    where A.ProdId =B.ProId
    union
    Select A.info, Null,......
    from A
    where
      A.prodId not in (select prodid from b)
      

  2.   

    select a.*,nvl(b.产量,0)
    from a,b
    where a.prodid = b.prodid(+)
      

  3.   

    是的,我也是这么写的,其实这应该就是左(右)结合嘛,但是最后我的结果不对,因为我的SQL语句是这样写的了
    假设A表中这样的数据
      ProdID    ProdName
    -----------------------
       1          明矾
       2          铁砂
       3          矿石B表中有这样的数据  ID        ProdID     Prodyield      Month
    --------------------------------------------
      1           1           900         2002-01
      2           1           800         2002-02
      3           3           700         2002-01
      4           2           600         2002-02
    我希望能够用一个SQL查询出一月份的所有产品的产量,可能我开始没有说清楚吧,其实我也知道这是一个左结合就行了,但是怎么样在左结合中加入其他条件呢?我使用下面这样的SQL语句就没有办法达到目的select a.*,nvl(b.Prodyield,0)
    from a,b
    where a.prodid = b.prodid(+) and b.month='2002-01'
      

  4.   

    哈,我是这样写的时候就能够满足我的要求了,但是不知道会不会有问题,各位帮我看看?
    select a.*,nvl(b.Prodyield,0)
    from a,b
    where a.prodid = b.prodid(+) and (b.month='2002-01' or b.month is null)
      

  5.   

    也可以这样的:select a.* ,nvl(b_se.prodyield,0)
    from a,(select * from b where b.month = '2002-01') b_se
    where a.prodid = b_se.prodid(+)
      

  6.   

    select *
      from a,b
     where a.ProdId = b.ProdId (+);
      

  7.   

    select a.*,b.* from a left OUTER join b on a.ProdId = b.ProdId
      

  8.   

    这样就行了:
    select a.*,nvl(b.Prodyield,0)
    from a,b
    where a.prodid = b.prodid(+) and b.month(+)='2002-01'
      

  9.   

    上面有些是错误的,或者不能达到你的要求,请共享
    你最后通过实践检验的sql语句,谢谢!