sql - 编写查询以显示在 deptno 10 或 30 中没有报告经理的 ename?
问题描述
SQL> SELECT * FROM emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-80 2900 20
7499 ALLEN SALESMAN 7698 20-FEB-81 3600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 3250 500 30
7566 JONES MANAGER 7839 02-APR-81 4975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 3250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 4850 30
7782 CLARK MANAGER 7839 09-JUN-81 4450 10
7788 SCOTT ANALYST 7566 19-APR-87 5000 20
7839 KING PRESIDENT 17-NOV-81 7000 10
7844 TURNER SALESMAN 7698 08-SEP-81 3500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 3100 20
7900 JAMES CLERK 7698 03-DEC-81 2950 30
7902 FORD ANALYST 7566 03-DEC-81 5000 20
7934 MILLER CLERK 7782 23-JAN-82 3300 10
这是Oracle SQL 中给出的emp 表。
我需要显示部门 10 或 30 中没有报告经理的员工。
解决方案
您可以通过左外连接使用自连接,如下所示:
Select ename
from emp e1
left outer join emp e2 on e2.MGR = e1.EMPNO
where e2.MGR is null AND e1.DEPTNO in (10,30)
推荐阅读
- karate - 使用场景大纲中的示例匹配每个
- ios - 更新 UITableViewController
- terraform - Terraform 资源“random_pet”不工作
- javascript - 将 JS 对象设置为新变量时会更新它们
- apache-spark - Spark mapPartitions 与 DataFrames 的正确用法
- python - 奇怪的函数行为python
- spring - 事务没有在春季回滚
- ios - @IBDesignable UIView 不在情节提要中调用 init
- javascript - 如何呈现 html 代码输入?
- java - 普林斯顿大学算法课程二进制堆程序中可比接口(Java)的实现