例如表a
company    productid
aaa          111
bbb          222
ccc               
表b
id         product
111         第一类
222         第二类
333         第三类语句如下
select a.company,b.product from a,b where a.productid=b.id(+)结果为
aaa       第一类
bbb       第二类为什么ccc的productid为空,通过以上查询语句后就不不能查出来?

解决方案 »

  1.   

    select a.company,b.product from a,b where a.productid=b.id(+)
    这个左连接是肯定可以的啊。
      

  2.   


    --不可能查不出来
    SQL> with a as(
      2       select 'aaa' company,'111' productid from dual union all
      3       select 'bbb','222' from dual union all
      4       select 'ccc','' from dual)
      5  ,b as(
      6     select '111' id,'第一类' product from dual union all
      7     select '222','第二类' from dual union all
      8     select '333','第三类' from dual)
      9  select a.company,b.product
     10  from a,b
     11  where a.productid=b.id(+)
     12  /COMPANY PRODUCT
    ------- -------
    aaa     第一类
    bbb     第二类
    ccc  
      

  3.   

    找到问题了,原来where 条件语句中还有一个条件中没有用到(+),导致前一个(+)也没起到作用