pl-sql语句的问题,求达人解答
select t.GLJG_DM, NVL(NSR.GLJG_DM, 0)
from DB_DJGL.T_DJ_JGNSR NSR, db_rdgl.t_rd_szjdxx t
where t.swglm = nsr.swglm(+)
and t.GLJG_DM = NSR.GLJG_DM(+)
and nsr.swglm = 320800100005549;
查询结果:当GLJG_DM 无共同值时,无结果显示,
select t.GLJG_DM, NVL(NSR.GLJG_DM, 0)
from DB_DJGL.T_DJ_JGNSR NSR, db_rdgl.t_rd_szjdxx t
where t.swglm = nsr.swglm(+)
and t.GLJG_DM = NSR.GLJG_DM(+)
and t.swglm = 320800100005549;
查询结果:当GLJG_DM无共同值时,显示t 表中的GLJG_DM。
有点迷糊,求达人解答一下,如果该问题太幼稚,喷我,我加强学习。
------解决方案--------------------左连接 是以左表为基础的关联
要显示左表的全部数据 必须在where中 不能出现其他表字段的过滤 否则 数据会显示的不全
如果真要过滤其他表 那要再嵌套一层 再where过滤
------解决方案--------------------数据少的一方加(+) 已补充null来和主表匹配。
其它的楼上正解