我有以下表格。从数据库计算玩家统计信息
我想从给定的表中获取所有球员的统计记录,个别球员的纪录包括。
- 玩家姓名
- 位置
- 总游戏人数起到
- 进球数得分
- 助攻进球总数。
- 总分(总进球数+总助攻数=总分数)。
尝试后,我想出了这个查询
SELECT SQL_CALC_FOUND_ROWS
CONCAT(u.first_name, ' ', u.last_name) as player_name,
p.position,
COUNT(g.id)
FROM
gce_player p
LEFT JOIN
gce_user u ON(u.id = p.user_id)
LEFT JOIN
gce_game_team_lineup gtl ON(gtl.player_id = p.id)
LEFT JOIN
gce_game_team gt ON(gt.id = gtl.game_team_id)
LEFT JOIN
gce_game_goal gg ON(gg.player_id = p.id)
LEFT JOIN
gce_game g ON(g.id = gt.game_id)
GROUP BY p.id
ORDER BY p.id asc
上面的查询返回我正确的记录,直到游戏的总数玩,我面临的问题,获取在此之后的适当记录,虐待赞赏任何种类对此有帮助。
这里是链接到sqlfiddle如果你想看看架构,我也添加了一些测试数据。
谢谢。
UPDATE:
这里有几个要记住的规则。
进球数=球员进球总进球数。例如,如果在
gce_game_goal
表中有10行,其中 的值为player_id as 4
这意味着玩家已经获得了10个目标 ,我需要为单个玩家获取此记录,并且如果有7行,其中player_id具有值3这 意味着ID为3的球员已经打进了7球并且同样如此。进球助攻总数=球员给守门员的助攻总数(助攻就像足球传球)。我需要 计算用户完成的助攻或传球总数。
对于每个进球都会有两个助攻,而且每个助攻都是球员 传球给一个golaie。我想统计球员的数量 或协助。例如,如果在gce_game_goal
表有8行或具有3中任一 assis1_id或assist2_id列中的值的记录,这意味着ID为3播放机已经 拿下8协助总
。
请让我知道,如果你还有任何疑问/问题,生病尝试来改善我的问题
感谢
究竟是什么不起作用?哪个价值,你期望什么,返回什么?有错误吗?哪些错误? – markus
什么是“助攻目标总数”。 – Sahal
对不起,让你困惑的人,我正在更新我的问题的所有细节,请等待几分钟,谢谢。 –