Если я не понял вашего вопроса, следующее утверждение вернет вам требуемые результаты.
Я использую следующие предположения
Host
отображается на custmerid
Participant
отображается на custmerid
- Введенные вами данные являются неполными
Обратите внимание, что если custmerid
не является орфографической ошибкой в вашем вопросе, я бы посоветовал вам полностью изложить ее как customerid
Оператор SQL
SELECT groupid = g.id
, host = chost.customername
, participation = cparticipant.customername
FROM [Group] g
LEFT OUTER JOIN Customer chost ON chost.custmerid = g.Host
LEFT OUTER JOIN Customer cparticipant ON cparticipant.custmerid = g.Participant
Данные испытаний
;WITH [Group](ID, Host, Participant) AS (
SELECT 1, 1000, 2000
UNION ALL SELECT 2, 1000, NULL
UNION ALL SELECT 3, NULL, 3000
)
, Customer (custmerid, customername, alias) AS (
SELECT 1000, 'abccorp', 'abc'
UNION ALL SELECT 2000, 'bcacorp', 'bca'
UNION ALL SELECT 3000, 'lcacorp', 'lca'
)
SELECT groupid = g.id
, host = chost.customername
, participation = cparticipant.customername
FROM [Group] g
LEFT OUTER JOIN Customer chost ON chost.custmerid = g.Host
LEFT OUTER JOIN Customer cparticipant ON cparticipant.custmerid = g.Participant
выход
groupid host participation
----------- ------- -------------
1 abccorp bcacorp
2 abccorp NULL
3 NULL lcacorp