Hallo
SELECT COUNT(g.winner)+1 AS wins, p.id AS playerid FROM players p
LEFT JOIN games g ON p.id = g.winner GROUP BY playerid
Funktioniert nicht...
natürlich nicht. Was soll die Addition von 1 bewirken?
Wie wäre es, wenn Du als allererstes die Liste der Spieler mit der Liste der Gewinner verknüpfst - ohne irgendwelche Zählaktionen, dazu nutzt Du einen INNER JOIN (schöner wäre ein expliziter JOIN statt implizit über eine WHERE-Klausel). Mehr dazu in Rouvens bereits verlinktem Artikel
Im zweiten Schritt änderst Du die Verknüpfung derart ab, dass auch alle die Spieler mit aufgeführt werden, die noch nicht gewonnen haben. Dazu verwendest Du statt des INNER JOIN einen OUTER JOIN, je nach Gusto einen LEFT oder einen RIGHT JOIN.
Wenn Du das hast, kannst Du im letzten Schritt zählen, wie oft der einzelne gewonnen hat.
Wo bist Du hängengeblieben?
Freundliche Grüße
Vinzenz