Как правило, вы бы использовали UNION
для "объединения" запросов. Однако в данном конкретном случае это приведет к тому, что один столбец будет содержать как EyeColor
, так и HairColor
между дублированными строками. Я сомневаюсь, что вы этого хотите. Лучше всего использовать псевдоним вашей объединенной таблицы, чтобы вы могли присоединиться к ней дважды:
SELECT
ClientCharacteristic.Id,
ClientCharacteristic.ClientId,
ClientCharacteristic.Height,
EyeLookup.LookupItem as EyeColor,
HairLookup.LookupItem as HairColor
FROM
dbo.ClientCharacteristic
INNER JOIN dbo.GeneralLookup AS EyeLookup
ON EyeLookup.Id=ClientCharacteristic.glEyeColorId
INNER JOIN dbo.GeneralLookup AS HairLookup
ON HairLookup.Id=ClientCharacteristic.glHairColorId
Ключевым моментом, на который следует обратить внимание, является предложение AS
в предложениях INNER JOIN
, в котором псевдоним объединяется в таблице для остальной части запроса. Это позволяет вам присоединяться к одной и той же таблице несколько раз на разных ключах, чтобы на нее можно было ссылаться для разных целей.