oracle inner joinleft joinright join +左边或者右边的区别
Posted 浅雨凉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle inner joinleft joinright join +左边或者右边的区别相关的知识,希望对你有一定的参考价值。
整理下inner join、left join、right join 、+左边或者右边
主要两张表:dept、emp
一个是部门,一个是员工表结构如下:
这两张表 dept是主表 emp是子表,关联的列是deptnodept表现有数据
emp表现有数据
inner join 意思是内连接 把匹配的信息全部查出来
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e innerjoin dept d on e.deptno=d.deptno orderby e.empno;
查询的结果:
left join 左连接 意思是包含左边表所有记录,右边所有的匹配的记录,如果没有则用空补齐
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e leftjoin dept d on e.deptno=d.deptno orderby e.empno;
解释SQL :这条SQL语句左边是EMP表 左连接结果查询出EMP所有的记录,然后根据左边表匹配出右边表DEPT所有的记录
查询结果如下:
right join 右连接 意思是包括右边表所有记录,匹配左边表的记录,如果没有则以空补齐
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e rightjoin dept d on e.deptno=d.deptno orderby e.empno;
解释SQL:这条SQL语句EMP在左边,DEPT在右边,然后我们采用右连接,就查出右边表所有的数据
full join 全连接 意思是左右表所有的记录全部显示出来
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e fulljoin dept d on e.deptno=d.deptno orderby e.empno;
解释SQL:这条SQL语句采用全连接,查询出左表和右表所有的值出来
查询结果:
介绍Oracle +连接方式及说明
+在左边 为右连接
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e,dept d where e.deptno(+)=d.deptno orderby e.empno;
查询结果:
+在右边 为左连接
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname from emp e,dept d where e.deptno=d.deptno(+) orderby e.empno;
查询结果:
以上是关于oracle inner joinleft joinright join +左边或者右边的区别的主要内容,如果未能解决你的问题,请参考以下文章
SQL中inner joinleft joinright joinouter join之间的区别
SQL表连接查询(inner joinfull joinleft joinright join)
SQL表连接查询(inner joinfull joinleft joinright join)
表的基本查询语句及使用连表(inner joinleft join)子查询
sql 表的连接 inner joinfull joinleft joinright joinnatural join
图解SQL的inner joinleft joinright joinfull outer joinunionunion all的区别