SQL Server:查询连接两个表

the*_*gul 2 sql database sql-server

尝试基于挑战匹配系统创建SQL Server查询.我想在查询中加入两个表:UsersChallengeMatches.

表中的Users列是UserID, UserDisplayName

表中的ChallengeMatch列是ChallengeMatchID, ChallengerUserID, ChallengeeUserID

当然,所有ChallengeeUserID的和所有ChallengerUserID的都Users作为唯一用户列在表中.我希望查询要做的是每次挑战匹配(ChallengeMatch表中的行),返回UserDisplayName两个挑战参与者,例如PlayerName1,PlayerName2.

任何帮助,将不胜感激.

cit*_*nga 7

您需要两次加入Users表.这应该做的伎俩:

select 
    u1.UserDisplayName as [Challenger],
    u2.UserDisplayName as [Challengee]
from ChallengeMatch cm
left outer join Users u1
    on cm.ChallengerUserID = u1.UserID
left outer join Users u2
    on cm.ChallengeeUserID = u2.UserID
where cm.ChallengeMatchID = 2 /* specify value for relevant match */
Run Code Online (Sandbox Code Playgroud)

这是一个使用此示例的SQL小提琴.