当前位置: 代码迷 >> Sql Server >> 表中有数据,为啥查询出来的结果为NUll
  详细解决方案

表中有数据,为啥查询出来的结果为NUll

热度:56   发布时间:2016-04-24 10:25:00.0
表中有数据,为什么查询出来的结果为NUll
select e.lscj,e.lscjje,e.dj

from spkfk a(nolock)
join ywmxk b(nolock) on a.spid=b.spid 
 left join ps_sphwph  e(nolock) on e.spid=b.spid and e.hw=b.hw and e.dj_sn=b.dj_sn  and b.djbh=e.djbh
join cwk c(nolock) on b.djbh=c.djbh
join mchk d(nolock) on c.shdwbh=d.dwbh
where  a.beactive='是'
and ( c.djbs='XSA'  or  c.djbs='XSC')
and b.psr='王小'
and c.rq >='2014-01-01'
and c.rq <='2014-05-31'



e.lscj,e.lscjje,e.dj 查询出的结果均为NUll, 表ps_sphwph 中这几个字段都有数值
是语句结构不对? 




------解决方案--------------------
楼主要理解left join 的含义了
--将left join 改为inner join

select e.lscj,e.lscjje,e.dj
from spkfk a (nolock)
inner join ywmxk b(nolock) on a.spid=b.spid 
inner join ps_sphwph  e(nolock) on e.spid=b.spid and e.hw=b.hw and e.dj_sn=b.dj_sn  and b.djbh=e.djbh
inner join cwk c(nolock) on b.djbh=c.djbh
inner join mchk d(nolock) on c.shdwbh=d.dwbh
where  a.beactive='是'
and ( c.djbs='XSA'  or  c.djbs='XSC')
and b.psr='王小'
and c.rq >='2014-01-01'
and c.rq <='2014-05-31'
  相关解决方案