Skor dan acara harus disatukan sebelum luar-menggabungkan mereka untuk pemain.
Kita bisa menggunakan subquery atau tanda kurung untuk memaksa "prioritas" gabungan ini, tetapi lebih baik menggunakan urutan GABUNG dalam teks SQL, dan kemudian dengan hati-hati "mengarahkan" GABUNG terakhir ke pemain (KANAN dalam kasus ini).
COALESCE hanya untuk mengonversi NULL ke 0.
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;
Ini menghasilkan:
P_ID LASTNAME FIRSTNAME TOTALPOINTS
1 Hansen Ola 6
2 Svendson Tove 0
3 Pettersen Kari 0
Anda dapat memainkannya di SQL Fiddle ini .