oracle查询总结四----多表查询

查询总结四----多表查询

#显示雇员名,雇员工资及所在部门的名字—笛卡尔积

select a1.ename,a1.sal,a2.dname from emp a1,dept a2 where a1.deptno=a2.deptno;

为什么要加上后面的条件呢?不加条件会查出14X4=56条记录。

笛卡尔积规定:

多表查询的条件是至少不能少于表的个数减一

#如何显示部门号为10的部门名、员工名和工资

select a3.dname,a3.ename,a3.sal from   (select a1.dname,a1.deptno,a2.ename,a2.sal  from dept a1,emp a2 where a1.deptno=a2.deptno) a3 where a3.deptno=10;自己写的。

select a1.dname,a2.ename,a2.sal from dept a1,emp a2 where a1.deptno=a2.deptno and a2.deptno=10;答案

#显示各个员工的姓名,工资,及其工资的级别

select a1.ename,a1.sal,a2.grade from emp a1,salgrade a2 where a1.sal between a2.losal and a2.hisal

#显示雇员名,雇员工资及所在部门的名字,并按部门排序

select a1.ename,a1.sal,a2.dname from emp a1,dept a2 where a1.deptno=a2.deptno order by a1.deptno;

猜你喜欢

转载自blog.csdn.net/chuijinbao/article/details/84206348