我有一个用 php 编写的 SQL 请求,我想对其进行优化。
我认为这是可能的,因为所有内容都在同一个表中。我不是 SQL 专家,我的搜索关键字(包括“share”和“results”/“sub”/“partial”)没有帮助。
SELECT C0.bestScore, C1.playerScore, C2.playerRank FROM
(SELECT MAX(score) AS bestScore FROM `{$l_tableName}`) C0,
(SELECT MAX(score) AS playerScore FROM `{$l_tableName}` WHERE player_id = {$l_playerId}) C1,
(SELECT COUNT(*)+1 AS playerRank FROM `{$l_tableName}` WHERE score > (SELECT MAX(score) FROM `{$l_tableName}` WHERE player_id = {$l_playerId}) ) C2;
谢谢
最佳答案
你可以用这个清理前2部分,不完全确定第三部分,不清楚你在追求什么,分数怎么会大于同 table 的最高分数?
SELECT MAX(score) AS bestScore
, MAX(CASE WHEN player_id = {$l_playerId}) THEN score ELSE '' END) AS playerScore
FROM `{$l_tableName}`
关于mysql - 优化包含同表子请求的SQL请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17125419/