体育比赛的SQL查询优化

时间:2013-10-16 09:36:53

标签: mysql

您好我需要优化我的SQl查询,因为目前我在网站上运行代码时会询问太多查询。

我需要的是每场比赛的球队名称。我目前有这个:

  

匹配(idMatch,homeTeamId,awayTeamId)

     

团队(idTeam,nameTeam)

我的代码目前循环访问每个匹配,同时获取homeTeamId和awayTeamId,然后为每个匹配执行相同的查询:

  

SELECT nameTeam FROM Team WHERE idTeam = homeTeamId   SELECT nameTeam FROM Team WHERE idTeam = awayTeamId

因此,3个查询只是为了获得匹配的可读版本:

  'homeTeam'与'awayTeam'。

如果有人能帮助我优化SQL查询,我会非常感激,因此可以将其压缩为单个查询,也可以优化以减少资源占用。

谢谢

1 个答案:

答案 0 :(得分:1)

不完全确定你想要的是什么,但是:

我认为你可以这样做:

Select m.idMatch, m.homeTeamId, th.homeTeamName, m.awayTeamId, ta.awayTeamName
FROM Match m
LEFT JOIN TEAM ta ON ta.idteam = m.awayteamId
LEFT JOIN TEAM th ON th.idteam = m.hometeamId

然后添加所需的WHERE子句。

这就是你需要的吗?

这将为您举例:

match1 idTeam1 teamName1 idTeam2 teamName2
match2 idTeam2 teamName2 idTeam3 teamName3