【发布时间】:2018-10-11 04:11:19
【问题描述】:
我们在我的项目中使用实体框架。在其中一项要求中,我需要使用左外连接和条件从多个表中查询数据。这是 SQL 脚本。有人可以为此提供 lambda 表达式吗?
SELECT
e.EmployeeId, e.EmployeeFirstName, e.EmployeeLastName,
s.SkillId, s.SkillName,
c.CertificateId, c.CertificateName, c.ExpiryDate
FROM
[dbo].[Employee] AS e
LEFT OUTER JOIN
[dbo].[EmployeeSkill] AS s ON e.EmployeeId = s.EmployeeId
AND s.IsActiveSkill = 1
LEFT OUTER JOIN
[dbo].[EmployeeCertification] AS c ON e.EmployeeId = c.EmployeeId
AND c.IsActiveCertification = 1
AND c.ExpiryDate < GETUTCDATE() + 30
WHERE
e.DepartmentId = 1
AND e.IsActiveEmployee = 1
【问题讨论】:
-
看看你是否从这篇文章中自学:stackoverflow.com/questions/17142151/…
-
@John,在你提到的帖子中,虽然我们在 dc_tpatient_bookingm 上执行 LEFT OUTER JOIN,但它会转换为该表的内连接,因为我看到 m.enteredon 的 where 子句中有一个条件
-
基本上我希望附加过滤器应该应用于左外连接中的相应表。因此,我只能从技能表中获取活动技能,并且只能从员工认证表中获取活动证书以及到期日期在接下来的 30 天内。