查询出工资和 SCOTT 一样的员工信息 分步解析: 1、先查询出 SCOTT 的工资 注意:这里的员工姓名是区分大小写的。 虽然上述语句那么长,但是实际上它就是一个值。 2、把上面的语句用括号括起来,再查询出工资和 SCOTT 一样的员工信息 **注意:在 where sal = 这里写等号是有隐患的。**因为无法保证一个公司名字为 SCOTT 的员工是唯一的,有可能发生重名的现象,这样查询出来的结果就不是一个工资的值了,而是所有名字为 SCOTT 的员工的工资的集合,这样再写等号就会报错。为了避免这种情况发生,建议把等号改为 IN。 3、更正后最终结果 当然,如果是根据主键查询,返回的结果自然是唯一的,还是可以用等号的。 查询出工资和 10 号部门任意员工一样的员工信息 分步解析: 1、先查出 10 号部门所有人工资的集合 2、把上面的语句用括号括起来,再查询出工资和 10 号部门任意员工一样的员工信息 查询出每个部门最低工资,和最低工资员工姓名,和该员工所在部门名称 分步解析: 当前没有每个部门最低工资这张表,需要自己先查询出来。员工姓名和部门名称都可以根据 emp 表和 dept 表进行查询。 1、先查询出每个部门最低工资 2、三表联查,得到最终结果 msal 这个别名可以使用,因为会先执行子查询,执行完后 msal 这个别名就生效了,可以在外部的 SELECT 中使用。 t.deptno = e.deptno – 确保在同一个部门(t 表和 emp 表联合) t.msal = e.sal – 通过这个条件得到最低工资员工姓名(t 表和 emp 表联合) e.deptno = d.deptno – 通过这个条件得到员工所在部门名称(emp 表和 dept 表联合) t.deptno – 部门编号 t.msal – 最低工资 e.ename – 员工姓名 d.dname – 部门名称
子查询返回一个值
SELECT * FROM emp WHERE sal IN ( SELECT sal FROM emp WHERE ename = 'SCOTT' );
SELECT sal FROM emp WHERE ename = 'SCOTT'
SELECT * FROM emp WHERE sal = ( SELECT sal FROM emp WHERE ename = 'SCOTT' )
SELECT * FROM emp WHERE sal IN ( SELECT sal FROM emp WHERE ename = 'SCOTT' );
子查询返回一个集合
SELECT * FROM emp WHERE sal IN ( SELECT sal FROM emp WHERE deptno = 10 );
SELECT sal FROM emp WHERE deptno = 10
SELECT * FROM emp WHERE sal IN ( SELECT sal FROM emp WHERE deptno = 10 );
子查询返回一张表
SELECT t.deptno, t.msal, e.ename, d.dname FROM ( SELECT deptno, MIN(sal) AS msal FROM emp GROUP BY deptno ) t, emp e, dept d WHERE t.deptno = e.deptno AND t.msal = e.sal AND e.deptno = d.deptno;
SELECT deptno, MIN(sal) AS msal FROM emp GROUP BY deptno;
SELECT t.deptno, t.msal, e.ename, d.dname FROM ( SELECT deptno, MIN(sal) AS msal FROM emp GROUP BY deptno ) t, emp e, dept d WHERE t.deptno = e.deptno AND t.msal = e.sal AND e.deptno = d.deptno;
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算