Ciao ragazzi, ho la necessità di eseguire una query mediante MySQL tra due tabelle per conoscere il numero di voti totalizzati dai nominativi presenti nella tabella “voti”.
In breve ho creato due tabelle di cui, una chiamata “candidati”, e una chiamata “voti”.
La tabella “candidati” è costituita da due colonne che sono, “ID” e “CANDIDATO”, mentre la tabella “voti” è costituita da 17 colonne che sono, “ID” – “SCHEDA_NULLA” – “VOTO_1” – “VOTO_2” – “VOTO_3” … “VOTO_15”. Ogni cella della tabella “voti” contiene solo un valore, che in questo caso è il nome del “CANDIDATO” preso dalla tabella “candidati”.
Io personalmente ho eseguito diverse query ma nessuna mi restituisce perfettamente il risultato dovuto. Quello che cerco di ottenere è un elenco di nomi provenienti dalla tabella “candidati” con i relativi risultati affianco di ogni nome, ovviamente il conteggio va fatto dalla tabella “voti”.
La prima query eseguita è stata:
SELECT candidati.CANDIDATO,
COUNT(*) AS NR_VOTI
FROM voti, candidati
WHERE CANDIDATO=candidati.CANDIDATO
GROUP BY CANDIDATO;
Questa query funziona dal punto di vista di raggruppamento, infatti ottengo perfettamente l’elenco dei nominativi (i candidati) ma come risultato, “NR_VOTI”, ottengo il numero dei record e non il conteggio dei nominativi presenti nelle colonne della tabella “voti”.
Invece la query sotto riportata, restituisce correttamente il conteggio e il raggruppamento dei nominativi solo per una colonna e non, ovviamente, di tutta la tabella "voti":
SELECT VOTO_1,
COUNT(*) AS NR_VOTI
FROM voti
GROUP BY VOTO_1;
La mia domanda quindi è, esiste un modo per contare il numero di voti, quindi il numero di nominativi ripetuti nell’intera tabella “voti” prendendo però i nominativi presenti nella tabella candidati?
Ringraziandovi in anticipo, per ogni consiglio e/o aiuto che potrete darmi, vi saluto con affetto.
Alessandro.