Originariamente inviato da lorenzos
Ciao,
io ho due tabelle:
1 corsi
2 iscritti
da cui devo prendere (sto cercando con una query sola) tutti i corsi e contare gli iscritti per ogni corso.
Ho provato con la seguente:
SELECT a.idCorso, a.nomeCorso, a.postiTotaliCorso, a.statoCorso, COUNT(b.idIscritto) as iscrittiTotaliCorso FROM corsi AS a, iscritti AS b WHERE a.idCorso=b.idCorso
ma mi restituisce solo i corsi dove effettivamente c'è un'iscritto, mentre quelli senza iscritti non avendo un idCorso nella tabella iscritti non vengono visualizzati. Ho modo di farlo comunque o devo fare due query e poi confrontare con php?
dovresti usare left join in modo di avere tutti i record di corsi.
codice:
SELECT a.idCorso, a.nomeCorso, a.postiTotaliCorso, a.statoCorso,
COUNT(b.idIscritto) as iscrittiTotaliCorso
FROM corsi AS a
LEFT JOIN AS b USING(idCorso)
GROUP BY a.nomeCorso