Sql 基于所玩游戏计算玩家等级
我需要显示一个图表,可以显示游戏,分数,所有时间的排名,每周排名,排名与朋友 我有两张桌子:Sql 基于所玩游戏计算玩家等级,sql,mysql,Sql,Mysql,我需要显示一个图表,可以显示游戏,分数,所有时间的排名,每周排名,排名与朋友 我有两张桌子: 1) 高分(玩家ID、玩家ID、分数、时间(时间戳)) 2) 好友(playerid、friendid) 我想知道如何使用最少数量的查询来做到这一点 我在游戏网站上使用PHP和MySQL。只计算一次数据,而不是每次请求都计算 您有两种解决方案: cron/async作业 每次插入/更新/删除/截断后触发重新计算统计信息 计算数据一次,而不是每次请求时 您有两种解决方案: cron/async作业 每
1) 高分(玩家ID、玩家ID、分数、时间(时间戳))
2) 好友(playerid、friendid) 我想知道如何使用最少数量的查询来做到这一点
我在游戏网站上使用PHP和MySQL。只计算一次数据,而不是每次请求都计算 您有两种解决方案:
- cron/async作业
- 每次插入/更新/删除/截断后触发重新计算统计信息
- cron/async作业
- 每次插入/更新/删除/截断后触发重新计算统计信息
- 可以按如下方式对其进行查询:
SELECT
gamescores.gameid,
COUNT(*)+1 AS rank,
playergamescores.total,
gamename,
foldername
FROM (
SELECT gameid, playerid, SUM( score ) AS total, time
FROM high_scores
GROUP BY gameid, playerid
ORDER BY gameid, total DESC
) AS gamescores
INNER JOIN
(
SELECT gameid, SUM(score) AS total
FROM high_scores
WHERE playerid = 361822
GROUP BY gameid
ORDER BY total DESC
) AS playergamescores
ON playergamescores.gameid = gamescores.gameid
INNER JOIN gamemaster
ON gamescores.gameid = gamemaster.gameid
WHERE gamescores.total > (
SELECT SUM( score ) AS total
FROM high_scores
WHERE gamescores.gameid = gameid
AND playerid = 361822
)
GROUP BY gamescores.gameid
ORDER BY gamescores.time DESC
谢谢你的回答。。。
-Navi可以按如下方式对其进行查询:
SELECT
gamescores.gameid,
COUNT(*)+1 AS rank,
playergamescores.total,
gamename,
foldername
FROM (
SELECT gameid, playerid, SUM( score ) AS total, time
FROM high_scores
GROUP BY gameid, playerid
ORDER BY gameid, total DESC
) AS gamescores
INNER JOIN
(
SELECT gameid, SUM(score) AS total
FROM high_scores
WHERE playerid = 361822
GROUP BY gameid
ORDER BY total DESC
) AS playergamescores
ON playergamescores.gameid = gamescores.gameid
INNER JOIN gamemaster
ON gamescores.gameid = gamemaster.gameid
WHERE gamescores.total > (
SELECT SUM( score ) AS total
FROM high_scores
WHERE gamescores.gameid = gameid
AND playerid = 361822
)
GROUP BY gamescores.gameid
ORDER BY gamescores.time DESC
谢谢你的回答。。。
-Navi需要澄清的问题很多:你是说,每场比赛结束后,显示比赛分数以及它在历史排名和每周排名中的位置?定义一周,是指最后7个日历日、最后24x7小时、从周一开始的当前一周等?与朋友排名-这是否也按周细分?它是否仅根据每个朋友的最佳高分显示唯一的朋友?需要澄清的是:你的意思是,在每场比赛后,显示游戏分数以及它在历史排名和每周中的位置?定义一周,是指最后7个日历日、最后24x7小时、从周一开始的当前一周等?与朋友排名-这是否也按周细分?它是否仅根据每个朋友的最佳高分显示唯一的朋友?