为了账号安全,请及时绑定邮箱和手机立即绑定

请问在oracle 中(+)是什么意思?

/ 猿问

请问在oracle 中(+)是什么意思?

慕沐林林 2019-08-17 12:11:33

oracle (+)是什么意思


查看完整描述

4 回答

?
临摹微笑

select * from a,b
where a.id=b.id(+)

这里的意思就是a,b表连接,a表先全部展示,然后b表id和a表一致的就连接上,没有的就补些空格在后边。

查看完整回答
反对 回复 2019-08-18
?
沧海一幻觉

oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方。

例如左外连接:
select A.a,B.a from A LEFT JOIN B ON A.b=B.b;
等价于
select A.a,B.a from A,B where A.b = B.b(+);

再举个例子,这次是右外连接:
select A.a,B.a from A RIGHT JOIN B ON A.b=B.b;
等价于
select A.a,B.a from A,B where A.b (+) = B.b;

查看完整回答
反对 回复 2019-08-18
?
交互式爱情

这个表示左连接,或者右连接的意思,简单的解释:
表结构如下
id name job
01 jack cleck
02 owen
03 awer work
上述结构中owen名称对应JOB列无内容,如果想要查处一方有数据另一方没有数据就用到连接了。


查看完整回答
反对 回复 2019-08-18
?
繁花不似锦

oracle特有的左外联书写方式,当然你也可以用传统的通用的左外联,比如给你举个例子
SELECT s.name AS 姓名,g.grade AS 分数,c.cid AS 课程名
FROM tbl_student s LEFT OUTER JOIN tbl_grade g ON s.StudentId=g.sid LEFT OUTER JOIN tbl_class c ON g.cid=c.ClassId
它跟下面等价
SELECT s.name AS 姓名,g.grade AS 分数,c.classname AS 课程名
FROM tbl_student s,tbl_grade g,tbl_class c
WHERE (s.StudentId=g.sid(+)) AND (g.cid=c.ClassId(+))

查看完整回答
反对 回复 2019-08-18

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信