多表查询

多表查询语法:
SELECT {DISTINCT} * |查询列1 别名1,查询列2 别名2,……
FROM 表名称1 别名1,表名称2 别名2,……
{WHERE 条件(s)}
{ORDER BY 排序字段 ASC|DESC,排序字段 ASC|DESC……}

 

eg:查询员工的编号,员工的姓名,部门的编号,部门名称及部门位置
SQL> select e.empno 工号,e.ename 姓名,d.deptno 部门号,d.dname 部门,

         d.loc 地点 from emp e,dept d where e.deptno=d.deptno;

 

eg:查询每个员工的姓名,工作,所属部门名称,员工的直接上级领导的姓名

SQL>select e.ename 姓名,e.job 工作,ee.ename 经理,d.dname 部门

from emp e,emp ee,dept d where e.mgr=ee.empno and e.deptno=d.deptno;

 

eg:查询出每个雇员的姓名、工资、部门名称、工资等级及领导姓名和领导工资等级

方法一,(1)查询出领导的编号、姓名和工资做为一张表:
SQL>select e.ename 姓名,m.ename 经理,msal.grade 经理工资等级 from

emp e,emp m,salgrade msal where e.mgr=m.empno and m.sal between

msal.losal and msal.hisal ;
--(2)查出自己的姓名  部门 工资及工资等级
SQL>select e.ename 姓名,d.dname 部门,e.sal 工资, sal.grade  等级 from

emp e,dept d,salgrade sal where e.deptno=d.deptno and e.sal between

sal.losal and sal.hisal;
--(3)合并2长表
SQL>select e.ename 姓名,d.dname 部门,e.sal 工资, sal.grade  等级  ,

 manager.经理,manager.经理工资等级 from  (select m.empno 编号,

m.ename 经理,msal.grade 经理工资等级 from emp m,salgrade msal

where m.sal between msal.losal and msal.hisal) manager , emp e,

dept d,salgrade sal where e.deptno=d.deptno and e.mgr=manager.编号

and e.sal between sal.losal and sal.hisal;

 

方法二,一气呵成

SQL>select e.ename,m.ename,d.dname,e.sal,es.grade,ms.grade

 from emp e,emp m,dept d,salgrade es,salgrade ms
where e.deptno=d.deptno and e.sal between es.losal and es.hisal

and e.mgr=m.empno and m.sal between ms.losal
and ms.hisal;

 

eg:使用decode()函数

select e.ename,m.ename,d.dname,e.sal,decode(e.sal,1,'五等',2,'四等',3,'三等',4,'二等',5,'一等'),
decode(ms.grade,1,'五等',2,'四等',3,'三等',4,'二等',5,'一等') from emp e,emp m,dept d,salgrade es,
salgrade ms where e.deptno=d.deptno and e.sal between es.losal and es.hisal and

e.mgr=m.empno and m.sal between ms.losal and ms.hisal;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值