Usando SUM com múltiplas junções no mysql

Eu tenho procurado por uma solução para isso, há muitas perguntas semelhantes, mas nenhuma tem respostas adequadas que me ajudaram a resolver o problema.

Primeiro, minhas perguntas / problema:

Eu quero somar e contar certas colunas em uma consulta de junção múltiplaNão é possível com várias associações? Eu tenho que aninharSELECT consultas?

Aqui está um dump SQL do meu banco de dados com dados de amostra:http://pastie.org/private/vq7qkfer5mwyraudb5dh0a

Esta é a consulta que pensei que faria o truque:

SELECT firstname, lastname, sum(goal.goal), sum(assist.assist), sum(gw.gw), sum(win.win), count(played.idplayer) FROM player
LEFT JOIN goal USING (idplayer)
LEFT JOIN assist USING (idplayer)
LEFT JOIN gw USING (idplayer)
LEFT JOIN win USING (idplayer)
LEFT JOIN played USING (idplayer)
GROUP BY idplayer

O que eu gostaria que isso produzisse é uma tabela onde as colunas para goal, assist, gw, win e play são uma soma / contagem de cada linha naquela coluna, assim: (com dados de amostra fornecidos)

+-----------+----------+------+--------+----+-----+--------+
| firstname | lastname | goal | assist | gw | win | played |
+-----------+----------+------+--------+----+-----+--------+
| Gandalf   | The White|   10 |      6 |  1 |   1 |      2 |
| Frodo     | Baggins  |   16 |      2 |  1 |   2 |      2 |
| Bilbo     | Baggins  |    7 |      3 |  0 |   0 |      2 |
+-----------+----------+------+--------+----+-----+--------+

Então, para repetir as perguntas acima novamente, isso é possível com uma consulta e várias associações?

Se você fornecer soluções / consultas,por favor explique-os! Sou novo em bancos de dados relacionais adequados e nunca usei joins antes desse projeto. Eu também apreciaria se você evitasse pseudônimos, a menos que necessário.

Eu executei a consulta acima sem soma e agrupamento e obtive um conjunto de linhas para cada coluna que façoSELECT em, que eu suspeito é então multiplicado ou adicionado em conjunto, mas eu estava sob a impressão de que agrupar e / ou fazersum(TABLE.COLUMN) resolveria isso.

Outra coisa é que, eu acho, fazendo umSELECT DISTINCT ou qualquer outroDISTINCT a operação não funcionará, pois isso deixará de fora alguns resultados ("duplicados").

PS. Se isso importa, minha máquina dev é um WAMP, mas o lançamento será no Ubuntu / Apache / MySQL / PHP.

questionAnswers(1)

yourAnswerToTheQuestion