MySQL:如何在同一个表上使用不同的WHERE条件组合多个SELECT查询?

MySQL:如何在同一个表上使用不同的WHERE条件组合多个SELECT查询?,mysql,Mysql,我在这个论坛和其他许多论坛上尝试了许多不同的方法来解决这个问题。我似乎找不到这个问题的解决方案,也找不到任何能给我一个直接答案的文档 我不知道你能不能帮我看看 谢谢 问题: 我有一个数据库,里面有以下表格 参与者考试分数 联盟 轮 我目前能够显示一轮的分数,一次一轮。。。这正是我想要的。 但我还想显示每个参与者在所有回合中得到的分数。 假设我们有两轮。我希望结果屏幕上的输出如下所示: Currently viewing league 20, Round 1 of 2: User Nam

我在这个论坛和其他许多论坛上尝试了许多不同的方法来解决这个问题。我似乎找不到这个问题的解决方案,也找不到任何能给我一个直接答案的文档

我不知道你能不能帮我看看

谢谢

问题:

我有一个数据库,里面有以下表格 参与者考试分数 联盟 轮

我目前能够显示一轮的分数,一次一轮。。。这正是我想要的。 但我还想显示每个参与者在所有回合中得到的分数。 假设我们有两轮。我希望结果屏幕上的输出如下所示:

 Currently viewing league 20, Round 1
 of 2:
 
 User Name |  Score   |  Total Score
 
 Tom       |   10     |    200
 
 James     |   50     |    300
用户名-参与者的姓名 分数=本轮的分数 总分=本联盟所有回合得分相加

下面是我的Mysql查询。为它的混乱道歉,我已经重写了大约100次,现在的方式是唯一能完全工作的方式

>>联盟参与者查询(mysql)
这里需要的是以下表单中的子查询:

SELECT
  name,
  round,
  score,
  ( select sum( score ) from scores sc where sc.userid = users.userid ) total
FROM users INNER JOIN scores on users.userid = scores.scoreid
对于从初始查询返回的每一行,将计算作为列的子查询

要尝试将其添加到查询中,请执行以下操作:

SELECT
  participants.participant_id,
  participants.participant_name,
  participants.participant_gender,
  classes.class_name,
  schools.school_name,
  participant_scores.participant_score,
  participant_scores.participant_score_id,
  ( SELECT sum(participant_score) FROM participant_scores tbl_scores2
    WHERE tbl_scores2.participant_score_id = participants.participant_id ) total
FROM participant_scores, participants, classes,
  league_schools, schools, leagues, rounds
WHERE
  leagues.league_id = 51  AND
  rounds.league_id = 51  AND
  rounds.round_id = 25 AND
  participant_scores.round_id  = 25  AND
  league_schools.league_id = 51  AND
  schools.school_id = league_schools.school_id  AND
  classes.school_id = schools.school_id  AND
  classes.year_group_id = leagues.year_group_id  AND
  participants.class_id = classes.class_id  AND
  participant_scores.participant_id = participants.participant_id 
GROUP BY
  participants.participant_id

我有点担心子查询包含多个联盟,但看起来一个参与者无论如何只能属于一个联盟。您可能需要在子查询中包含一些内容来检查此问题。

您好,感谢您的深入回复。我必须让你知道我是个初学者,所有这些对我来说都是反复试验。我正在使用一个程序来帮助我识别代码中的错误,但到目前为止,我无法使用您建议的更改使我的脚本运行。我一定是输入错了。它不会让我再在这里发布我的代码。我只剩下240个字符了。。。我会把它写在下面的答案里。谢谢我还想指出,参与者可以是许多联盟的成员。因此,我们可能必须尝试输入一些代码,以便只选择属于该联盟的参与者。-如果你能帮我一把的话,我可以写剧本。再次感谢!!
SELECT
  participants.participant_id,
  participants.participant_name,
  participants.participant_gender,
  classes.class_name,
  schools.school_name,
  participant_scores.participant_score,
  participant_scores.participant_score_id,
  ( SELECT sum(participant_score) FROM participant_scores tbl_scores2
    WHERE tbl_scores2.participant_score_id = participants.participant_id ) total
FROM participant_scores, participants, classes,
  league_schools, schools, leagues, rounds
WHERE
  leagues.league_id = 51  AND
  rounds.league_id = 51  AND
  rounds.round_id = 25 AND
  participant_scores.round_id  = 25  AND
  league_schools.league_id = 51  AND
  schools.school_id = league_schools.school_id  AND
  classes.school_id = schools.school_id  AND
  classes.year_group_id = leagues.year_group_id  AND
  participants.class_id = classes.class_id  AND
  participant_scores.participant_id = participants.participant_id 
GROUP BY
  participants.participant_id