oracle中关联查询条件"(+)="的问题

发布网友 发布时间:2022-03-08 07:34

我来回答

2个回答

热心网友 时间:2022-03-08 09:04

用(+)来实现, 这个+号可以这样来理解: + 表示补充,即哪个表有加号,这个表就是匹配表。所以加号写在左表,右表就是全部显示,故是右连接。
SQL> Select * from dave a,bl b where a.id(+)=b.id;

ID NAME ID NAME
---------- ---------- ---------- ----------
1 dave 1 dave
2 bl 2 bl
1 bl 1 dave
2 dave 2 bl
3 dba 3 big bird
4 sf-express 4 exc
9 怀宁

也可以用right outer join实现同样的功能:

SQL> select * from dave a right outer join bl b on a.id = b.id;
ID NAME ID NAME
---------- ---------- ---------- ----------
1 dave 1 dave
2 bl 2 bl
1 bl 1 dave
2 dave 2 bl
3 dba 3 big bird
4 sf-express 4 exc
9 怀宁 --此处左表不足用Null 填充
已选择7行。

热心网友 时间:2022-03-08 10:22

这是左右边连接,很好判断,你看(+)在那边,那边就补空,如:a.emp_id (+)=b.dept_id那么b表的数据就全部被查询出来,a表没有这条数据就补空,讲多了你可能有点不明白 ,你记住一条就知道了,那边有(+),那边就补空!追问补空的意思是?这规律我也知道,我试过了,我是想记笔记组织个什么语言能描述出来.以后翻起来能理解,或者别的情况下也能懂.

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com