SELECT gs.HomeTeamId,
100*avg(s.P2M)/avg(s.P2A) as P2P FROM gamesstats as gs, stats as s
WHERE gs.LeagueId = '145' AND
gs.SeasonStart = '2010'
GROUP BY gs.HomeTeamId
HAVING P2P > 52.12765958
这就是我试图在我的mysql服务器上提出的SQL。由于某种原因,它需要太多时间。我可以在一秒钟内分别获得s.P2M
和s.P2A
,但这需要永远。
谁知道为什么?
答案 0 :(得分:3)
您在gamesstats和stats之间没有加入条件。所以你要创建一个Cartesian product,其大小可能是数十亿行。
答案 1 :(得分:2)
通过在where子句中使用没有连接的FROM gamesstats as gs, stats as s
,您可以有效地在两个表之间创建交叉连接。添加连接条件。