Mysql 足球数据库-sql查询-无视图-进球最多的球队

Mysql 足球数据库-sql查询-无视图-进球最多的球队,mysql,sql,database,Mysql,Sql,Database,我的桌子是: 匹配表: season id_match home_team_id away_team_id home_team_goal away_team_goal 及 团队成员表: id_team name_team 对于每个赛季,我都需要选择得分更多的球队的名字。我是SQL新手,在连接方面仍然存在一些问题(我永远不知道使用哪种类型,如果是左、右、全..)。 这就是我尝试过的: top_scorer_team = ("""SELECT season, te

我的桌子是:

匹配表:

  season
  id_match
  home_team_id
  away_team_id
  home_team_goal
  away_team_goal

团队成员表:

  id_team
  name_team
对于每个赛季,我都需要选择得分更多的球队的名字。我是SQL新手,在连接方面仍然存在一些问题(我永远不知道使用哪种类型,如果是左、右、全..)。 这就是我尝试过的:

top_scorer_team = ("""SELECT season, team_id, sum(goals) as goals
    from (select home_team_id as id_team, home_team_goal as goals from match_table
    union all
    select away_team_id as id_team, away_team_goal as goals from match_table)
    group by id_team 
    order by goals desc""")
它不能正常工作。有人能帮忙吗? 另外,我知道一旦我有了id,我还需要加入团队表来检索团队的名称

编辑: 例如:

id_team | team_name

  ---------+---------------

   10      | A

   20      | B

   30      | C

   40      | D

   50      | E
查询应返回:

season | team_name | total_goals

  ---------+-----------+------------
2008/2009| C     | 3

ecc.

要按团队获得本赛季的所有目标:

select name_team, season, sum(tot_goals) as all_goals
from (
  select t1.name_team, season, g1.home_team_goals + g2.away_team_goals as tot_goals
  from team_table t1
  left join match_table g1
    on t1.id_team = g1.home_team_id
  left join match_table g2
    on t1.id_team= g2.away_team_id
) x1
group by name_team, season

你应该能够从这里获得特定的团队信息

“我永远不知道该使用哪种类型,如果是左、右、全。”-右很少使用,而且在mysql中不存在全(虽然可以模拟它)“它不能正常工作”…?还有
top\u scorer\u team=sqlContext.sql(“…
不是正确的sql(或mysql)语法。“每个季节”-你的表格中没有任何季节的标志?@Luuk我知道我忘了把它排除在问题之外。这是因为我正在与pyspark合作anyways@P.Salmon是的,match_表中有一个名为“季节”的列。它有2008/2009或2015/2016的字段,在最后一行出现错误,如下所示“参考‘季节’不明确,可能是:g1.season,g2.season"@yoyo_24:也可以是
t1.season
…由你决定哪一个是正确的!@Luuk我该怎么做?首先,从你的查询中复制错误消息,并将其添加到你的问题中。其次,安装li。这样你就可以自己测试你的查询了。这篇文章中的查询现在被添加到a中,只是为了给出答案你(和其他人)有一个快速测试东西的方法。
select name_team, season, sum(tot_goals) as all_goals
from (
  select t1.name_team, season, g1.home_team_goals + g2.away_team_goals as tot_goals
  from team_table t1
  left join match_table g1
    on t1.id_team = g1.home_team_id
  left join match_table g2
    on t1.id_team= g2.away_team_id
) x1
group by name_team, season