0
我有一些问题,我无法解决的sql查询。改进sql查询选择玩游戏的数量和玩家赢得的游戏数量
我有2个表:
players: id, name
games: id, name, player1_id, player2_id, winner_id
现在我想要得到的游戏总量,赢得了每一个玩家。
目前我与子选择这样做:
SELECT player.name AS name,
(SELECT COUNT(id) FROM replays AS replay WHERE replay.player1_id = player.id OR replay.player2_id = player.id) AS games,
(SELECT COUNT(id) FROM replays AS replay WHERE replay.winner_id = player.id) AS wins
FROM players AS player
但首先它是非常缓慢的。 而且,我无法进行复杂的搜索查询,例如搜索赢得超过次数的游戏或者游戏次数少的游戏。
你有什么想法,我该如何改进这个查询?
预先感谢您。
非常感谢您的回答。 – MoVSic 2010-11-15 09:26:14
但是,如果我想添加搜索值,例如我想选择所有拥有10胜以上的玩家? – MoVSic 2010-11-15 09:27:22
要添加搜索值,您需要HAVING子句:http://dev.mysql.com/doc/refman/5.0/en/select.html – 2010-12-18 11:22:10