Mysql 从多个表中获取多个值
我在MySQL中设置了一个数据库,有两个不同的表: 表“匹配项” 表“团队” 我希望能够将表“matches”中的id与表“teams”中的团队名称关联起来,这样我就可以在匹配页面上打印出来 我的问题是,我不能根据自己的需要回答这个问题 我的最新尝试:Mysql 从多个表中获取多个值,mysql,sql,Mysql,Sql,我在MySQL中设置了一个数据库,有两个不同的表: 表“匹配项” 表“团队” 我希望能够将表“matches”中的id与表“teams”中的团队名称关联起来,这样我就可以在匹配页面上打印出来 我的问题是,我不能根据自己的需要回答这个问题 我的最新尝试: SELECT matches.*, teams.name AS team1name FROM matches LEFT JOIN teams ON matches.team1ID = teams.id UNION SELECT matches.*
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
这可能吗?只需将表连接两次:
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*
ID TEAM1ID TEAM2ID TIME DATE TEAM1NAME TEAM2NAME
---------------------------------------------------------
5 13 14 21:00 5 May GucciGang BeachBoys
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