- Home
- Categorie
- Coding e Sistemistica
- PHP
- Left join
-
Left join
Salve a tutti, spiego in sintesi il problema:
tabella 1 "utente"IDUtente
Nome
RIDRegionetabella 2 "regione"
IDRgione
RegioneHo utilizzato la seguente query:
SELECT r.Regione, count( u.RIDRegione ) AS totale
FROM utente AS u LEFT JOIN regione AS r ON u.RIDRegione = r.IDRegione
WHERE u.IDUtente >1
GROUP BYRIDRegione
ORDER BY totale DESCVorrei visualizzare tutte le regioni, con accanto il numero totale di relativi iscritti. Sono riuscito a visualizzare solo le regioni che hanno occorrenza nella tabella "utente", ma non riesco a visualizzare le restanti regioni con accanto 0 come risultato.
Potete aiutarmi?
Grazie in anticipo
-
Ciao Huck,
devi invertire le tabelle nelle query, facendo from regione e dopo un join con gli utenti.
-
@Thedarkita said:
Ciao Huck,
devi invertire le tabelle nelle query, facendo from regione e dopo un join con gli utenti.
Intanto grazie,
funziona, ma ne visualizza solo una di quelle non legate alla tabella utenti, la prima che trova e poi basta, sai come mai?
-
A posto, la query è questa:
SELECT r.Regione AS reg, count( u.RIDRegione ) AS totale
FROM utente AS u
RIGHT JOIN regione AS r ON u.RIDRegione = r.IDRegione
WHERE r.Regione != 'Non definita'
GROUP BYRegione
ORDER BY totale DESCGrazie del tuo aiuto