对同一表中有2列且具有外部id的表的SQL查询

对同一表中有2列且具有外部id的表的SQL查询,sql,Sql,我有一个表格,比如说:match(id,hometeam\u id,awayteam\u id)和team(id,name)。我如何构建SQL查询以(match_id、hometeam_name、awayteam_name)的形式获取结果表,因为它们都(hometeam_id、awayteam_id)引用同一个表(team) 谢谢您两次加入团队 select matchdate, t1.teamname, t2,teamname from match m join team t1 on m.

我有一个表格,比如说:match(id,hometeam\u id,awayteam\u id)和team(id,name)。我如何构建SQL查询以(match_id、hometeam_name、awayteam_name)的形式获取结果表,因为它们都(hometeam_id、awayteam_id)引用同一个表(team)


谢谢

您两次加入团队

select matchdate, t1.teamname, t2,teamname from 
match m 
join team t1 on m.hometeamId = t1.teamid
join team t2 on m.awayteamid = t2.teamid

您只需多次加入团队表:

SELECT m.id, away.name, home.name
FROM match m
INNER JOIN team away ON away.id = m.awayteam_id
INNER JOIN team home ON home.id = m.hometeam_id

两次加入
团队
表,一次加入主队,一次加入客队,在查询中的表名后使用别名:

select m.match_id, homeTeam.name as HomeTeamName, awayTeam.name as AwayTeamName
from 
team homeTeam join
match m on m.hometeam_id = homeTeam.hometeam_id join
team awayTeam on awayTeam.hometeam_id = m.awayteam_id
select m.match_id, homeTeam.name as HomeTeamName, awayTeam.name as AwayTeamName
from 
team homeTeam join
match m on m.hometeam_id = homeTeam.hometeam_id join
team awayTeam on awayTeam.hometeam_id = m.awayteam_id