当前位置:Gxlcms > 数据库问题 > 多表查询SQL99

多表查询SQL99

时间:2021-07-01 10:21:17 帮助过:24人阅读

查询30号部门员工的编号,姓名和部门的名称 select e.empno,e.ename,d.dname from emp e,dept d where e.deptno = d.deptno; ---sql92 select e.empno,e.ename,d.dname from emp e join dept d on e.deptno = d.deptno where d.deptno = 30; ---sql99 --查看10部门员工姓名,薪水 和薪水等级 select e.ename, e.sal, s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal where e.deptno = 10; --sql99

【5】自连接

select e1.empno,e1.ename, e2.empno,e2.ename
from emp e1 join emp e2
on e1.mgr = e2.empno;   --sql99
---但是注意;少了KING这个用户,所以使用外连接。

【6】外连接

外连接有三种:左外连接,右外连接,全外连接

--[6] 外连接 [outer] join   outer 可以省略 与 inner一样!
--   左外连接 left  [outer] join 
--   右外连接 right [outer] join
--   全外连接 full  [outer] join

select  e1.empno,e1.ename,e2.empno,e2.ename
from emp e1 
left join emp e2  --e1 是可以看作员工表  e2可以看作领导表
on e1.mgr = e2.empno;

--查询所有部门的详细信息以及每个部门的平均工资,包含没有员工的部门
select d.*,round(nvl(avg(sal),0)) avg_sal
from emp e1 
right join dept d 
on e1.deptno = d.deptno
group by d.deptno,d.dname,d.loc
order by d.deptno;--按照部门编号排序

--查询部门30员工编号,姓名,部门名称,薪水,薪水等级
select e.empno,e.ename,d.dname,e.sal,s.grade
from emp e 
join dept d on e.deptno = d.deptno
join salgrade s on e.sal between s.losal and s.hisal
where d.deptno = 30;

 

 

 

  

  

多表查询SQL99

标签:内连接   领导   name   指定字段   mgr   span   color   左外连接   nat   

人气教程排行