3

我有这个在 0.55 秒内运行的简单查询。

SELECT tr.*

FROM Tournament_Result tr, Game g, Tournament t
LEFT JOIN Tournament_Type tt ON t.intType = tt.intTournamentType

WHERE tr.intTournamentId = t.intTournamentId
AND t.intGameId = g.intGameId
AND t.strStatus = 'live'

ORDER BY dtmCreated DESC

所有连接都是键,主键或索引键。如果我删除了左连接“LEFT JOIN Tournament_Type tt ON t.intType = tt.intTournamentType”,查询会立即运行。

所以我认为它必须是“t.intType = tt.intTournamentType”连接,但我检查了两个键都是不合适的。不知道在这里做什么。我什至尝试过直接加入,它总是会减慢速度的 Tournament_Type 表。我什至在上面运行了“优化”命令。

有任何想法吗?

提前致谢!

阿明

4

1 回答 1

1

查询中缺少某些内容。Tournament_Type 表是 LEFT JOINED并且

Tournament_Type表中的 任何字段也没有用于任何其他联接或 SELECT 中

如果您要从Tournament_Type 表中添加一列以显示在结果中

SELECT Tournament_Result.*,
(select <<Col1>> from Tournament_Type where Tournament_Type.intTournamentType=t.intType)

FROM  Game 
inner join Tournament on Tournament.intGameId = Game.intGameId
inner join Tournament_Result on Tournament_Result.intTournamentId = Tournament.intTournamentId
WHERE Tournament.strStatus = 'live'
ORDER BY dtmCreated DESC
于 2012-09-03T16:03:12.837 回答