焦志广 发表于 2013-1-14 08:51:00

Oracle 第八天 SQL各种连接查询

以下均以oracle->scott账号自带的数据库为例(方括号里的东西表示有和没有效果是一样的)。

表内查询->自连接
查询所有经理所对应的雇员:

select manager.ename as manager,worker.ename as worker from emp manager,emp worker where manager.empno=worker.mgr;

表间连接->内连接
查询部门名对应的雇员名:

select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;

->左外连接
查询雇员名对应的部门名和没有部门对应的雇员名:

select e.ename,d.dname from emp e left join dept d on e.deptno=d.deptno;

->右外连接
查询雇员名对应的部门名和没有雇员对应的部门名:
select e.ename,d.dname from emp e right join dept d on e.deptno=d.deptno;

->全连接
select e.ename,d.dname from emp e full join dept d on e.deptno=d.deptno;

---------以上都是相等连接,还有一种不等连接
select e.ename,s.grade from emp ejoin salgrade s on e.sal between s.losal and s.hisal;

*1、between...and...包括两个端点值。
   2、从可以加inner中可以看出,不等连接也可以有内连接、左外/右外/全连接。

本文参考:http://yangxiutian.iteye.com/blog/1666543
页: [1]
查看完整版本: Oracle 第八天 SQL各种连接查询