【发布时间】:2015-06-06 12:16:13
【问题描述】:
我有一张包含足球比赛列表的表格。它有 match_id、team a score、team 2 score、rounds、match_date 等列。
我需要数据库中该轮边距最高的所有行 margin是a队得分和b队得分之差。
我的查询是
SELECT *,( SELECT MAX(ABS((z.home_score - z.away_score)))
FROM tblform_matches z
WHERE YEAR(z.match_date) = YEAR(tblform_matches.match_date)
AND z.round = tblform_matches.round ) as highest_margin
from tblform_matches where some condtion
这是一个简化的查询,其中某些条件是一个大查询字符串,用于根据过滤器选择一些指定的匹配项。
目前数据库中有大约 5000 个匹配项。
由于子查询,我的页面需要多花 4 秒才能加载。
每轮有9场比赛,每年有20多场比赛
我正在为 php 循环中的每个团队执行上述查询。我不能改变这件事。因为显示统计数据有很多计算。
对不起,如果我的问题不清楚,如果我错过了什么,我就在这里,因为我是 stakoverflow 的新手
提前致谢。
【问题讨论】:
-
在 tblform_matches.match_date & tblform_matches.round 上添加二级索引。
-
对不起,这个表在其他15个模块中使用,并且是相互关联的,所以我不允许对数据库进行任何更改。我只有读取权限才能显示统计数据