gpt4 book ai didi

mysql - 计数、最大值和多个子查询 SQL

转载 作者:行者123 更新时间:2023-11-30 00:58:50 27 4
gpt4 key购买 nike

我目前正在为我的运动队开发联赛系统。梯子,如某些电子游戏中所示。这是一个移动网站,允许教练创建游戏并监控球员的表现。

我让游戏自动平衡,考虑到玩家的经验和积分,然后,我向获胜队的所有玩家给予奖励积分,并从失败者中删除积分。

我有一个相对简单的数据库。 3 张 table 。

User : id - name

Games : id - ETA - cration_date

game_joueur: id- id_game - id_joueur - team - result - bonus

game_joueur 是一个关联表,我在其中注册每个新游戏玩家的 ID、他作为种子的球队,然后用获得的积分更新奖金字段,用整数更新结果字段(1 = 输) , 2= 获胜)

这样我就可以将我的玩家统计数据的奖金相加并获得总积分。

您可以在此处更好地查看该表:

http://sqlfiddle.com/#!2/d3e06/2

我想要完成的是每个玩家的统计页面,从数据库中检索他最成功的搭档的名字(他赢得最多比赛的人),以及他最糟糕的盟友,他失去的人最匹配。

这就是我在用户统计页面上所做的:

SELECT 
(SELECT COUNT(lad_game_joueur.result) FROM lad_game_joueur WHERE result = 1 AND lad_game_joueur.id_joueur = lad_user.id) as lose,
(SELECT SUM(lad_game_joueur.bonus) FROM lad_game_joueur WHERE lad_game_joueur.id_joueur = lad_user.id) as points,
lad_user.id as id ,
(SELECT COUNT(lad_game_joueur.result) FROM lad_game_joueur WHERE lad_game_joueur.id_joueur = lad_user.id AND result =2) as win,
lad_user.name
FROM lad_user,lad_game_joueur
WHERE lad_game_joueur.id_joueur = lad_user.id AND lad_user.id
='.$id_joueur.'
GROUP BY lad_user.id
ORDER BY puntos DESC

我确信这不是最好的方法,但它有效:)(我不是 sql 专家)

如何调整此查询以检索我正在查找的信息?

我不介意再进行一次查询。

提前非常感谢!

最佳答案

好吧,我终于找到了方法。这就是我所做的:

SELECT 
SUM(result)as result_sum, sum(Bonus) as bonus_sum, id_joueur
from lad_game_joueur
where result= 2
and id_game in
(SELECT lad_game_joueur.id_game from lad_game_joueur,lad_game where id_joueur=2
AND result= 2 and lad_game_joueur.id_game=lad_game.id)
group by id_joueur
order by result_sum DESC, bonus_sum desc

如你所见,如果我和这个人赢了两场比赛,结果的总和会给我 4,但我只是在 php 上除以 2,瞧:)

关于mysql - 计数、最大值和多个子查询 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20318408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com