Używanie SUM z wieloma połączeniami w mysql

Szukałem rozwiązania tego problemu, jest wiele podobnych pytań, ale żadne nie ma właściwych odpowiedzi, które pomogłyby mi rozwiązać problem.

Po pierwsze, moje pytania / problem:

Chcę sumować i policzyć pewne kolumny w kwerendzie wielokrotnego łączeniaCzy nie jest możliwe z wieloma połączeniami? Czy muszę gniazdowaćSELECT zapytania?

Oto zrzut SQL mojej bazy danych z przykładowymi danymi:http://pastie.org/private/vq7qkfer5mwyraudb5dh0a

To jest pytanie, które myślałem, że może załatwić sprawę:

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

To, co chciałbym, aby to wyprodukowało, to tabela, w której kolumny celu, asysty, gw, wygranej i granej są sumą / liczbą każdego wiersza w tej kolumnie, tak: (z dostarczonymi przykładowymi danymi)

+-----------+----------+------+--------+----+-----+--------+
| 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 |
+-----------+----------+------+--------+----+-----+--------+

Czy więc, aby powtórzyć powyższe pytania, czy jest to możliwe przy jednym zapytaniu i wielu połączeniach?

Jeśli dostarczasz rozwiązania / zapytania,proszę wyjaśnij je! Jestem nowicjuszem w odpowiednich relacyjnych bazach danych i nigdy nie korzystałem z łączenia przed tym projektem. Byłbym również wdzięczny, jeśli unikniesz aliasów, chyba że jest to konieczne.

Uruchomiłem powyższe zapytanie bez sumy i grupowania i otrzymuję zestaw wierszy dla każdej kolumny, którą robięSELECT dalej, co, jak podejrzewam, jest następnie mnożone lub sumowane, ale miałem wrażenie, że grupuję się i / lub robięsum(TABLE.COLUMN) rozwiąże to.

Inną rzeczą jest to, że myślę, żeSELECT DISTINCT lub jakikolwiek innyDISTINCT operacja nie będzie działać, ponieważ pominie niektóre („duplikaty”) wyniki.

PS. Jeśli ma to znaczenie, moja maszyna dev jest WAMP, ale wydanie będzie na ubuntu / apache / mysql / php.

questionAnswers(1)

yourAnswerToTheQuestion