面试之数据库多表查询汇总

多表查询

--

-- 1、返回拥有员工的部门名、部门号。

-- 错误

-- 需要员工信息和部门信息,连接emp和dept

-- select ename,emp.deptno,dname from emp,dept

-- where emp.deptno=dept.deptno

 

-- 要部门名和部门号,

-- 拥有员工,在员工表中,有人使用这个部门号

-- select * from dept where deptno in(select DISTINCT deptno from emp )

 

 

--

-- 2、工资水平多于‘鲁班七号’的员工信息。

-- 要员工信息,查员工表

-- 条件,工资多余鲁班七号

-- 查询鲁班七号的工资

-- select * from emp where sal>(select sal from emp where ename='鲁班七号')

 

--    

-- 3、返回员工和所属上级的姓名。

-- select e.ename eename,e.job ejob,m.ename mename,m.job mjob,m.mgr mmgr from emp e,emp m

-- where e.mgr=m.empno

-- 一个表中有自己的id,和上级的id,使用自关联

select ee.ename eename ,ee.job eejob,mm.ename mmname,mm.job mmjob,pp.ename ppname,pp.job ppjob

from emp ee ,emp mm,emp pp

where ee.mgr=mm.empno and mm.mgr=pp.empno

and (mm.job='经理' or pp.job='经理')

--     

-- 4、返回雇员的雇佣日期早于其上级雇佣日期的员工及其上级姓名。

-- select e.ename ename,e.job ejob,e.HIREDATE,m.ename mename,m.job mjob,m.HIREDATE

--  from emp e,emp m where e.mgr=m.EMPNO and e.HIREDATE<m.HIREDATE

-

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值