- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为锦标赛的终点分配一组分数,其中第一名获得 10 分,第二名获得 9 分,依此类推。然后我想合并具有相同团队名称的玩家的积分,没有团队(空)的任何人都不会获得积分。然后返回积分最多的队伍名称(team.title)和id(team.team_id)。
$TOTW = $db->fetchAll("SELECT tournyplayer.finishplace, user.username, team.title as teamname, team_member.member_state ".
"FROM tournyplayer ".
"JOIN user ON user.user_id = tournyplayer.userid ".
"LEFT JOIN team_member ON team_member.user_id = user.user_id ".
"LEFT JOIN team ON team.team_id = team_member.team_id ".
"JOIN tourny ON tourny.id = tournyplayer.multitrnyid ".
"WHERE tourny.title = 'Team Game' ".
"ORDER BY tourny.endtime DESC, tournyplayer.finishplace ASC ".
"LIMIT 10");
// Used for testing results
foreach($TOTW AS $rowName => $results){
if ($results["teamname"] === null OR $results["member_state"] === "request") $results["teamname"] = '-';
print "<pre>";
echo '<h1 align="center"><b>' . $results['username'] . '</b> finished ' . $results['finishplace'] . ' from Team ' . $results['teamname'] . '</h1>';
print "</pre><br />";
}
返回类似的内容。
+-------------+----------+----------+
| finishplace | username | teamname |
+-------------+----------+----------+
| 1 | Andy | Team B |
+-------------+----------+----------+
| 2 | Bob | Team B |
+-------------+----------+----------+
| 3 | Cole | NULL |
+-------------+----------+----------+
| 4 | Dillon | Team A |
+-------------+----------+----------+
| 5 | Ernie | Team A |
+-------------+----------+----------+
| 6 | Frank | Team A |
+-------------+----------+----------+
| 7 | George | Team C |
+-------------+----------+----------+
| 8 | Herman | NULL |
+-------------+----------+----------+
| 9 | Ike | Team B |
+-------------+----------+----------+
| 10 | Joe | Team A |
+-------------+----------+----------+
在此示例中,A 队获得 19 分,B 队获得 21 分,C 队获得 4 分,另外两名成员因未加入球队而获得 0 分。因此 B 队将成为获胜队,因为他们得分最多。如果两支或两支以上队伍积分相同,则由排名最高的队伍决定“决胜局”。
由于我还在学习 MySQL 和 PHP,所以我只能靠运气和几个小时的时间来尝试找出连接,才能得到结果。我不知道从这里开始做什么,因为我才刚刚开始。任何帮助将不胜感激。
最佳答案
我不会为您编写代码,但会提供一些提示,以便您解决问题。如果提示对您来说不够,请分享表详细信息,我将尽力为您提供实际的 sql。
你需要在这里玩几个把戏。一个人的分数是 10-finishplace-1。因此,在您的选择查询中添加一个包含公式的列。准备好此查询后,您可以使用此查询创建一个 View ,然后使用简单的 select sum() 查询和 group by teamname。
或者,您可以使用子查询来实现此目的。然而, View 比子查询效率更高。
关于php - 如何分配位置以获得获胜团队/小组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47426811/
我想为锦标赛的终点分配一组分数,其中第一名获得 10 分,第二名获得 9 分,依此类推。然后我想合并具有相同团队名称的玩家的积分,没有团队(空)的任何人都不会获得积分。然后返回积分最多的队伍名称(te
我是一名优秀的程序员,十分优秀!