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表没有这条数据就补空,讲多了你可能有点不明白 ,你记住一条就知道了,那边有(+),那边就补空!追问补空的意思是?这规律我也知道,我试过了,我是想记笔记组织个什么语言能描述出来.以后翻起来能理解,或者别的情况下也能懂.