我正在制作一个程序,根据谁拥有两个属性分数的最高总和来自动建议选择哪个玩家,例如,保存的目标得分为&。因此我有一个表(播放器),看起来是这样的:如何返回两列总和最高的行?
+---------------+--------------+-------------+
| Name | GoalsScored | GoalsSaved |
+---------------+--------------+-------------+
| John Smith | 15 | 12 |
| John Doe | 12 | 20 |
| Bob John | 7 | 6 |
| John Bob | 10 | 30 |
| Bobby Johnson | 25 | 30 |
+---------------+--------------+-------------+
和临时表来存储已经选择的球员(taken_players)的名字,这看起来是这样的:
+-----------------+
| takenplayername |
+-----------------+
| Bob John |
| Bobby Johnson |
+-----------------+
我正在寻找返回GoalsScored + GoalsSaved最高的玩家的名字的SQL查询,只要玩家没有被列出在玩家表中。
SELECT * FROM players
LEFT JOIN taken_players ON players.Name = taken_players.takenplayername
WHERE taken_players.takenplayername IS NULL
AND GoalsScored, GoalsSaved in (
SELECT MAX(GoalsScored + GoalsSaved)
FROM players
)
到目前为止,我有上面的代码,只有部分工作。我遇到的问题是,该声明的
GoalsScored, GoalsSaved in (SELECT MAX(GoalsScored + GoalsSaved)
部分没有做什么,我需要它,我在这里的一些代码只是猜测来说明我想它在做什么这个问题的目的。
另一个问题是,如果最佳玩家被添加到采取的玩家列表中,查询将返回任何内容而不是下一个最佳玩家。
我对此很新,任何帮助将不胜感激。
请用您正在使用的数据库标记您的问题。 –