Мои таблицы:
match_table:
season
id_match
home_team_id
away_team_id
home_team_goal
away_team_goal
и
team_table:
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""")
Это не работает должным образом. Кто-нибудь может помочь? PS. Я знаю, что мне также нужно присоединиться к таблице команд, чтобы получить название команды, когда у меня есть идентификатор
edit: пример будет:
id_team | team_name
---------+---------------
10 | A
20 | B
30 | C
40 | D
50 | E
season | match_id | home_team | away_team | home_goals | away_goals
----------+-----------+------------+------------+-------------
2008/2009 | 1 | 30 | 20 | 2 | 0
2009/2010 | 2 | 10 | 20 | 1 | 2
2012/2013 | 3 | 20 | 50 | 2 | 2
2008/2009 | 4 | 10 | 30 | 2 | 1
2011/2012 | 5 | 30 | 50 | 0 | 1
Запрос должен возврат:
season | team_name | total_goals
---------+-----------+------------
2008/2009| C | 3
ecc.