我在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
这可能吗?
答案 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 *
。