Ergebnisse und Ereignisse müssen vorher innerlich verbunden werden sie mit Spielern zu verbinden.
Wir könnten eine Unterabfrage oder Klammern verwenden, um diesen speziellen Join-"Vorrang" zu erzwingen, aber es ist besser, einfach die Reihenfolge der JOINs im SQL-Text zu verwenden und dann den letzten JOIN sorgfältig an den Spielern zu "orientieren" (in diesem Fall RECHTS).
Das COALESCE dient nur zum Konvertieren von NULLen in 0s.
SELECT
P_Id, LastName, FirstName, COALESCE(SUM(Points), 0) TotalPoints
FROM
Scores
JOIN Events
ON Event = E_Id AND Year = 2012
RIGHT JOIN Players
ON P_Id = Player
GROUP BY
P_Id, LastName, FirstName
ORDER BY
TotalPoints DESC;
Dies erzeugt:
P_ID LASTNAME FIRSTNAME TOTALPOINTS
1 Hansen Ola 6
2 Svendson Tove 0
3 Pettersen Kari 0
Sie können in diesem SQL Fiddle damit spielen .