mysql - 消除子查询中查询的行?
问题描述
我正在尝试解决db.grussell上的问题,问题陈述是
列出参加过罗伯特·罗伯茨 (Robert Roberts) 上过的任何课程的当前员工的全名和职位。
我的方法是我编写了一个子查询,它的输出值courseno
是由 Robert Roberts 采用的,然后我用它courseno
来获取相应的empno(employment number)
. 它进一步用作通过连接jobhistory
和employee
表制作的其他表中的过滤器。但在输出中,我不想让该行与 Robert Roberts 相关联。但是我知道它即将到来,因为在第一个子查询中,courseno
与 robert roberts 关联的用于获取,empno
因此 robert roberts 也被包括在内。
SELECT jobhistory.position,employee.surname,employee.forenames
FROM jobhistory
JOIN employee ON employee.empno= jobhistory.empno
WHERE employee.empno = ANY(
SELECT empno
FROM empcourse
WHERE courseno = ANY(
SELECT courseno
FROM empcourse
JOIN employee ON employee.empno = empcourse.empno
AND employee.surname = 'Roberts'
AND employee.forenames ='Robert'
)
)
AND jobhistory.enddate IS NULL
工作经历
EMPNO POSITION STARTDATE ENDDATE SALARY
1 Accounts Manager 12-JAN-76 30000
1 Assistant Accounts Manager 11-FEB-72 12-JAN-76 22000
员工
EMPNO SURNAME FORENAMES DOB ADDRESS TELNO DEPNO
1 Jones Elizabeth 05-JAN-44 26 Agnews 212-337 1
Shamrock,
2 Smith Robert 07-FEB-47 18 Marsh 031 732 1
Street,
职业
EMPNO COURSENO
1 1
2 2
解决方案
推荐阅读
- android - Android / java多线程按顺序在arraylist中获取和存储图像
- stm32 - 如何禁用 stm32f405 jtag 接口
- react-native - React Native 中的对象内的对象
- c++ - Qt 错误:QSqlQuery::value: 在尝试从表中检索统计信息时未定位在有效记录上 (QComboBox)
- c# - 如何在 WinForms 图表中创建从 (0,0) 到 (0,n) 的线?
- r - 交互式地图似乎没有正确过滤数据(闪亮,传单)
- javascript - 将选择列表中的所有项目获取到控制器
- ruby-on-rails - 尝试使用 ruby on rails 运行应用程序时出现控制器错误
- postgresql - 在 Postgres UPDATE 查询中循环 - 第 2 部分
- ajax - 如何在laravel中单击时从ajax重定向到视图?