Scores en evenementen moeten voordat aan elkaar worden gekoppeld buitenste-deelname aan spelers.
We zouden een subquery of haakjes kunnen gebruiken om deze specifieke join "voorrang" te forceren, maar het is leuker om gewoon de volgorde van JOIN's in de SQL-tekst te gebruiken, en dan voorzichtig de laatste JOIN te "oriënteren" naar spelers (in dit geval RECHTS).
De COALESCE is alleen voor het converteren van NULL's naar 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;
Dit levert:
P_ID LASTNAME FIRSTNAME TOTALPOINTS
1 Hansen Ola 6
2 Svendson Tove 0
3 Pettersen Kari 0
Je kunt ermee spelen in deze SQL Fiddle .