Oracle学习记录 八 多表查询
1. 笛卡尔集
select * from emp, dept;
2. 等值连接
select ename, job from emp, dept
where emp.deptno=dept.deptno;
3. 非等值连接
select ename, grade from emp, salgrade
where sal between losal and hisal;
这个其实我不太明白到底是怎么弄的。前面的两种都容易理解,这个难道是
拿一个sal就去salgrade中找在哪个范围?
4. 自连接
select t1.empno, t1.ename, t2.empno, t2.ename
from emp t1, emp t2
where t1.mgr=t2.empno;
5. 左外连接
select t1.empno, t1.ename, t2.dname
from emp t1, dept t2
where t1.deptno=t2.deptno(+);
select empno, ename, dname
from emp left outer join dept on emp.deptno=dept.deptno;
http://www.tuicool.com/articles/eQ3uiu
这篇文章介绍的还是挺详细的,基本上明白这些连接是怎么个意思了。
6. 右外连接
select t1.empno, t1.ename, t2.dname
from emp t1, dept t2
where t1.deptno(+)=t2.deptno;
select empno, ename, dname
from emp right outer join dept on emp.deptno=dept.deptno;
7. 满外连接
select empno, ename, dname
from emp full outer join dept on emp.deptno=dept.deptno;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。