SQL:查找加入所有项目的非经理员工ID

时间:2016-02-09 02:40:29

标签: mysql sql sqlplus

以下是给定表格的模式:

ProjectManager(ProjId, MgrId, StartDate, EndDate)
EmpProject(EmpId, ProjId, StartDate, EndDate)

其中“MgrId”与“EmpId”相同,只是命名不同。 问题是找到加入所有项目的非经理员工ID。

我的想法是: 1.在表EmpProject中,使用“group by ProjId”查找存在于所有组中的EmpId。 2.然后只选择那些不在ProjectManager.MgrId

中的empid

另一个想法是类似的 SQL Query to get common records

我尝试了几种方法,但无法取得进展。 任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个快速查询。基本上,这会通过检查ProjectManager表中是否存在员工ID来过滤掉所有非管理员

SELECT * 
FROM EmpProject
WHERE EmpId NOT IN (SELECT MgrId FROM ProjectManager)