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