Учитывая две таблицы, в которых два столбца в первой таблице с потенциально различными значениями ссылаются на один столбец во второй, есть ли способ «определить» эти столбцы, не объединяя таблицы дважды?
ДляНапример, если Таблица 1 равна
TransactionRecord( UserCreated char(3), UserModified char(3), ... , OtherData )
, а Таблица 2 равна
Users( UserID char(3), UserName varchar(50), ... , OtherData )
Есть ли способ получить набор результатов, равный
Result( TransactionData, UserNameCreated, UserNameModified )
без объединенияс первого стола на второй дважды?До сих пор мне удавалось добиться этого с помощью следующего SQL.
SELECT OtherData, uc.[UserName], uf.UserName
FROM TransactionData
LEFT JOIN Users uc ON TransactionData.UserCreated = uc.UserID
LEFT JOIN Users um ON TransactionData.UserModified= um.UserID
Но эти таблицы содержат довольно большое количество записей, и, поскольку соединения относительно дороги, я ищу лучший способ.Я использую TSQL, а сервером базы данных является SQL Server 2005.