我必须在3个条件参加职工3次加入。我可以在3种情况下加入一次员工吗?如何优化多选择比较/只有一个表的SQL
select
referType = resAffType,
referName = (case when resAffType = 0 then e.empFirstName + ' ' + e.empLastName
when resAffType = 1 then affFirstName + ' ' + affLastName
else NULL end),
bookName = e3.empFirstName + ' ' + e3.empLastName,
AssignToName = e2.empFirstName + ' ' + e2.empLastName,
from
Reservation r
left join ClubTable c on r.TableISN = c.TableISN
left join Affiliate a on r.AffiliateISN = a.AffiliateISN -- r.aff maybe in table aff
left join Employee e on r.AffiliateISN = e.EmployeeISN -- r.aff maybe in table emp
left join Employee e2 on r.EmployeeISN = e2.EmployeeISN -- assignedby emp
inner join Employee e3 on r.EmployeeISN = e3.EmployeeISN -- bookedby emp
您可以加入多个条件,如下面的答案,但是这不会给你同样的结果集,你会从你的示例查询上面看到。总之,你已经做的是正确的。 – user5151179
ok,tk回复:) –
你可以仔细检查你的代码吗?看起来你的最后两个连接的连接条件是相同的,只有一个是左边的,一个是内部连接。我猜这是一个错字。出于好奇,你列出的方法的缺点是什么,加入同一张桌子三次?这是一个完美的方法。只是好奇,要了解你的问题的上下文 – Hambone