天天看点

oracle左连接遇到的问题

今天做项目的时候遇到一个问题,数据关联的是有一个关联字段为空,所以整条数据丢失了,选择想到用左关联。

关于左关联的写法有2种

1.用left outer join 

 select t.*

   from mm_req_total t

   left outer join ba_datacategory n

     on t.distype = n.key

    and n.category = 'MM'

  where t.fccode = '3050'

    and t.psdate = '2011-11-22'

这样的查询结果是

oracle左连接遇到的问题

有3条记录

2.

 select t.*

   from mm_req_total t, ba_datacategory n

  where t.distype = n.key(+)  and n.category='MM'

    and t.fccode = '3050'

    and t.psdate = '2011-11-22'

这样执行的结果是

oracle左连接遇到的问题

有2条记录,原因是mm_req_total表里面的distype有一条记录是空的,所以关联出来就只有2条

这个的sql等价于

 select t.*

   from mm_req_total t

   left outer join ba_datacategory n

     on t.distype = n.key

  where t.fccode = '3050'

    and t.psdate = '2011-11-22'

    and n.category = 'MM'

这的结果是一样的,这是今天遇到的问题,呵呵