-2
select * from EmployeeScheduleRoles esr 
inner join
(
    select esr.ScheduleID from Schedules sch 
    inner join EmployeeScheduleRoles esr on esr.ScheduleID = sch.ID 
    inner join Employees emp on emp.ID = esr.EmployeeID
    where emp.ID = 15921
) subqry on subqry.ScheduleID = esr.ScheduleID 

制限: 「Contains()」は使用できません。

4

2 に答える 2

1

この LINQ クエリは、SQL クエリと同等です (あまり最適化されていないように見えます)。

from esr in db.EmployeeScheduleRoles
join subqry in
  (from sch in db.Schedules
   join esr2 in db.EmployeeScheduleRoles on sch.ID equals esr2.ScheduleID
   join emp in db.Employees on esr2.EmployeeID equals emp.ID
   where emp.ID == 15921
   select esr2.ScheduleID)
on esr.ScheduleID equals subqry
select esr
于 2013-06-27T20:10:53.193 に答える
0
var yours = (from esr in EmployeeScheduleRoles
join sch in Schedules on esr.ScheduleID equals sch.ID 
join emp in Employees  on emp.ID equals esr.EmployeeID
where emp.ID == 15921
select esr).toList()

ちなみに、あなたのSQLサブクエリは冗長です。 select esr.* from Schedules sch

于 2013-06-27T19:54:08.383 に答える