右链接问题

xihuanni0509 2011-06-14 05:29:31
select a.pk_freevalue, b.freevalueid
from bjh_subjamount_tmp b,
(select pk_freevalue, trim(valuecode) as valuecode, subsys
from bjh_freevalue
where freetype = '00') a
where a.valuecode(+) = b.freevalueid
-- and a.subsys (+)= b.subsys
and b.freevalueid is not null
and b.subsys = 'CW'
and b.period = '201105';

最近我在一段源码中看到这样一段SQL,我不理解 and a.subsys (+)= b.subsys
他加上这句代码有什么用?
...全文
94 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xihuanni0509 2011-06-15
  • 打赏
  • 举报
回复
我已经弄明白了,Thanks
304的的哥 2011-06-14
  • 打赏
  • 举报
回复
右连接:以右边的表为基准,
a.subsys (+)= b.subsys以b表中是数据为基准
tangren 2011-06-14
  • 打赏
  • 举报
回复
如果有两个表关联,如果有多个字段进行连接,如果进行左、右连接,
则每个字段条件都要使用相应的+号。

你上面的右连接表示,如果b中的记录根据条件在a中没有找到对应的记录,则也会查询出来;
也可使用 a right join b on (a.valuecode = b.freevalueid and a.subsys= b.subsys) where ...

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧