我有一个像这样的EmployeeDepartmetn juction表。我拥有Depeartment表中的所有部门和Employee表中的员工..
我希望获得特定员工的部门以及设备表中的所有部门。
应该像从Query中选择DepartmentId,DepartmentName,EmployeeID。
此处的主要标准是,如果员工没有该部门,则需要显示NULL。我在这里很困惑......请帮助。
请给Linq查询
先谢谢
答案 0 :(得分:2)
在左连接中添加条件:
Select distinct a.DeptID, b.DepartmentName, b.EmployeeID
From Department a
left join EmployeeDepartment b
on a.DeptID = b.DeptID and b.EmployeeID = 1 --insert employee ID here
它将显示所有部门(即使没有员工的部门),然后仅在该员工被分配时显示您在第三列中选择的员工ID。
答案 1 :(得分:0)
您可以使用条件聚合执行此操作:
select DeptId,
max(case when EmployeeId = 1 then EmployeeId end) as EmployeeId
from EmployeeDepartment ed
group by DeptId;
编辑:
如果您还有departments
表:
select d.deptid, d.name, ed.employeeid
from Departments d left join
EmployeeDepartment ed
on d.deptid = ed.deptid and
ed.employeeid = 1;