查询总结四----多表查询
#显示雇员名,雇员工资及所在部门的名字—笛卡尔积
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;