Miałem podobny problem i choć udało mi się go rozwiązać poprzez podzapytanie, ciągle jest to dla mnie niejasne.
Jeżeli w złączonych tabelach w kolumnach po których nastąpiło złączenie występują kilka razy takie same wartości, otrzymujemy iloczyn kartezjański (o ile dobrze zrozumiałem).
Postaram się jasno to opisać:
Mam trzy tabele: A, B, C, we wszystkich jest kolumna "Player_ID" wg. których następuje związanie tabel. Chcę wyciągnąć wszystkie informacje, gdzie "Player_ID = 1". W tabeli A Player_ID o wartości 1 występuje 3 razy, w tabeli B 1x, w C 10X.
Wysyłając takie zapytanie:
SELECT A.Name, B.Player_ID, SUM(C.Wartosc)
FROM A, B, C
WHERE A.Player_ID = B.Player_ID
AND B.Player_ID = C.Player_ID
GROUP BY C.Player_ID
otrzymuję SUM(C.Wartosc) pomnożoną przez ilość wystąpień Player_ID w kolumnie A.
Przy LEFT JOIN wynik jest taki sam. Jedynie używając podzapytania i usunięcie złączenia z tabelą A udało mi się uzyskać prawidłowy wynik. Ale chyba jest na to jakieś inne, prostsze rozwiązanie?