如何获得来自两个不同领域的链接表值在同一行中成单行结果集

时间:2019-02-02 18:36:07

标签: sql sql-server sql-server-2008

我有一个“比赛”表,显示游戏的对手。单行中有一个HomeTeamID和AwayTeamId字段。该ID字段与具有名称信息的“人”表。我需要的是一个查询,以创建单个行与包含人的名字,而不是ID匹配。我认为这是某种形式的联盟和分组的,但对我的生活,我不能明白。

匹配表:

ID,  DATE,      TIME,    HOMEID, AWAYID
105, 12/1/2018, 5:00 PM, 46,     53

PERSON TABLE:

ID, NAME
46, John Doe
53, Mike Smith

所需的输出:

105, 12/1/2018, 5:00 PM, 46, John Doe, 53, Mike Smith

1 个答案:

答案 0 :(得分:2)

由于您需要两次连接人员表,因此必须给它两个不同的别名

SELECT m.ID, m.DATE, m.TIME, m.HOMEID, home.NAME, m.AWAYID, away.NAME
FROM
    MATCH m
    INNER JOIN PERSON home
        ON m.HOMEID = home.ID
    INNER JOIN PERSON away
        ON m.AWAYID = away.ID