我有一个奇怪的场景,有4个表,有很多关系。以下是我的表格:
Employee
--------
EmpId (Pk)
Name
Dept
--------
DeptId (Pk)
Name
EmpDept
---------
EmpId (pk)
DeptId (pk)
这是一个多对多的表1员工可能属于1个以上的部门
Project
---------
ProjId (Pk)
EmpId (pk)
这也是许多人,其中1名员工可能是一个以上项目的一部分而不管部门。
dept和project之间没有映射。
我需要从depts分组的所有depts中获取员工所属项目的所有项目的详细信息。我完全迷失了编写查询。我所能写的只是
select *
from Project
where empId in (select empid from EmpDept)
我缺少的是deptID
,我该如何包含此内容?
答案 0 :(得分:0)
您可以使用以下代码
Select P.Name,D.name,E.name from Project P
join EmpDept Ep
on P.EmpId=Ep.EmpId
join Dept d
on d.DeptId=p.EmpId
group by d.name,P.Name,E.Name
只需在组中添加列,然后在选择列表中选择所需的列表。