这是我的查询加入一个表的多个列到另一个表的单个列单查询
select u.FirstName as AssignedBy, u1.FirstName as RespondedBy, u2.FirstName as ClosedBy
from Messages M
left join User u on isnull(M.AssignedBy, 0) = u.UserId
left join User u1 on isnull(M.RespondedBy, 0) = u1.UserId
left join User u2 on isnull(M.closedby, 0) = u2.UserId
是否有可能写在一个查询中加入?我想提高查询的性能,所以我不想让3个连接在单个连接中尝试,因为我的用户表有很多记录。我有两个表上的所有索引。我试图
select u.FirstName as AssignedBy, u.FirstName as RespondedBy, u.FirstName as ClosedBy
from Messages M
left join User u on
(isnull(M.AssignedBy, 0) = u.UserId or isnull(M.RespondedBy, 0) = u.UserId or isnull(M.closedby, 0) = u.UserId)
但此查询给出了,因为我有这在所有三个连接列记录多行不正确的输出。有没有其他办法可以达到同样的效果?
你的表现有多糟糕?你可以用查询的执行计划编辑你的问题吗? – 2014-10-30 11:20:29