Ciao a tutti.

Dovrei modificare una query correttamente funzionante che mi restituisce la lista dei capocannonieri di una certa squadra.

La query attuale è:
codice:
SELECT giocatori.codg, nome, foto, count(giocatori.codg) as gol, numero FROM giocatori NATURAL JOIN eventi, partite WHERE eventi.codp=partite.codp AND giocatori.cods = $cods AND eventi.tipo = 'G' AND (risultato = '1' OR risultato = 'X' OR risultato = '2') GROUP BY codg ORDER BY gol desc, nome asc
Questa query prende le tabelle giocatori e eventi (dove sono contenuti i gol, riconosciuti dal campo "tipo") e li mette in natural join per trovare i capocannonieri attraverso la selezione di count(giocatori.codg) e le clausole group by e order by. L'utilizzo della tabella partita serve esclusivamente per verificare i risultati delle partite nelle quali sono avvenuti gli eventi.

Adesso però mi serve che questa query mi restituisca anche i giocatori che hanno i gol pari a 0, cioè quelli che non hanno record nella tabella eventi. Purtroppo il natural join mi impedisce a priori di fare una cosa del genere, quindi ho creduto di dover ricorrere al left join (inserendo una clausola nello where che mi relazioni le tabelle giocatori e eventi come faceva il natural join), ma mi viene restituito un errore che non riesco a capire come risolvere.

La query modificata è
codice:
SELECT giocatori.codg, nome, foto, count(giocatori.codg) as gol, numero FROM giocatori LEFT JOIN eventi, partite WHERE eventi.codp=partite.codp AND giocatori.cods = $cods AND eventi.tipo = 'G' AND (risultato = '1' OR risultato = 'X' OR risultato = '2') AND giocatori.codg=eventi.codg GROUP BY codg ORDER BY gol desc, nome asc
L'errore è
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'where eventi.codp=partite.codp and giocatori.cods = 445 and eve

Qualcuno mi sa aiutare?