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