从多个表中获取多个值

时间:2018-02-08 15:23:21

标签: mysql sql

我在MySQL中有一个数据库设置,有两个不同的表:

表"匹配"

ID   TEAM1ID   TEAM2ID   TIME   DATE
-------------------------------------
5    13        14        21:00  5 May
5    4         7        22:00  7 May

表"团队"

ID   NAME             TEAMLEADER
-----------------------------------
13   GucciGang        Peter
4    Beatles          Peter
14   Beachboys        Peter
7    BackstreetBoys   Peter

我希望能够在表格中匹配ID"匹配"使用表格#34;团队"中的团队名称,以便我可以在匹配页面上打印出来。

我的问题是我可以根据自己的需要查询。

我的最新尝试:

SELECT matches.*, teams.name AS team1name
FROM matches
LEFT JOIN teams ON matches.team1ID = teams.id
UNION
SELECT matches.*, teams.name AS team2name
FROM matches
LEFT JOIN teams ON matches.team2ID = teams.id

这显然不太理想,因为我得到了两次所有比赛数据 这给了我两个名字,但是它们分开在行上,并且都标记为team1name

我正在寻找的结果是这样的:

ID TEAM1ID   TEAM2ID  TIME   DATE   TEAM1NAME   TEAM2NAME
---------------------------------------------------------
5  13        14       21:00  5 May  GucciGang   BeachBoys

这可能吗?

1 个答案:

答案 0 :(得分:1)

只需加入桌子两次:<​​/ p>

SELECT    matches.*
,         Team1.name AS team1name
,         Team2.name AS team2name
FROM      matches
LEFT JOIN teams AS Team1
       ON matches.team1ID = Team1.id
LEFT JOIN teams AS Team2
       ON matches.team2ID = Team2.id

请注意,最佳做法是专门指定列,而不是SELECT *