I have always used multiple joins when I need to reference same data on different columns. Like this:
select
a.ContactName
,b.ContactName
,c.ContactName
from
OrderBase as o
left join ContactBase as a on o.contactid1 = a.ContactId
left join ContactBase as b on o.contactid2 = b.ContactId
left join ContactBase as c on o.contactid3 = c.ContactId
I have always thought this was very inefficient. Loading the table 3 times for 3 lookups. Are there a more efficient way to do this? I don't mean the writing of code, but the use of resources. Are there any good tools implemented in the later versions of SQL server that addresses this?