SQL:如何在不覆盖结果的情况下对表的同一列进行多个连接?

acr*_*uui 4 mysql sql join

我有一张篮球比赛表和一个像这样的篮球队桌子:

MATCHES:
ID   |   HOME_TEAM_ID  |  AWAY_TEAM_ID | SCORE_HOME | SCORE_AWAY
----------------------------------------------------------------
1    |       20        |       21      |     80     |    110
2    |       12        |       10      |     96     |     90


TEAMS:
ID   |   NAME
-------------------------
20   |   BULLS
21   |   KNICKS
Run Code Online (Sandbox Code Playgroud)

给定匹配ID,我想检索得分和团队名称.如何创建一个从团队表中检索两个团队名称的JOIN?

我试过了:

SELECT *
FROM matches AS m
JOIN teams AS t1 ON t.id = m.home_team_id
JOIN teams AS t2 ON ti.id = m.away_team_id
WHERE m.id = 1
Run Code Online (Sandbox Code Playgroud)

...但是这里第二个JOIN语句的结果似乎覆盖了第一个语句的结果,所以我只得到一个名字:

[id] => 1
[score_home] => 80
[score_away] => 110
[name] => KNICKS
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

SELECT *
FROM matches AS m
JOIN teams AS t ON (t.id = m.home_team_id OR t.id = m.away_team_id)
WHERE m.id = 1
Run Code Online (Sandbox Code Playgroud)

...返回两个结果:

[id] => 1
[score_home] => 80
[score_away] => 110
[name] => BULLS
Run Code Online (Sandbox Code Playgroud)

[id] => 1
[score_home] => 80
[score_away] => 110
[name] => KNICKS
Run Code Online (Sandbox Code Playgroud)

我想做一个返回这样的东西的查询

[id] => 1
[score_home] => 80
[score_away] => 110
[name_home_team] => BULLS
[name_home_team] => KNICKS
Run Code Online (Sandbox Code Playgroud)

那可能吗?

Tob*_*sey 8

SELECT
    Matches.ID,
    Matches.Score_Home,
    Matches.Score_Away,
    HomeTeam.Name Home_Team_Name,
    AwayTeam.Name Away_Team_Name
FROM
    Matches
    INNER JOIN Teams HomeTeam ON Matches.Home_Team_ID = HomeTeam.ID
    INNER JOIN Teams AwayTeam ON Matches.Away_Team_ID = AwayTeam.ID
Run Code Online (Sandbox Code Playgroud)