今天做项目的时候遇到一个问题,数据关联的是有一个关联字段为空,所以整条数据丢失了,选择想到用左关联。
关于左关联的写法有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'
这样的查询结果是
有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'
这样执行的结果是
有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'
这的结果是一样的,这是今天遇到的问题,呵呵