2016-06-04 5 views
0

Ich erstelle eine Wahl-Anwendung, und ich möchte aus den Datenbanktabellen auswählen und das Ergebnis anzeigen .1 möchte den Kandidatennamen aus der ersten Tabelle, die ich candidate.sql und dann aufrufen Holen Sie sich die Anzahl der Stimmen aus der zweiten Tabelle namens Wähler.wie aus zwei Tabelle in sql

ist dies die candidate.sql Tabelle

id | candidate 
     1 |**mark** 
     2 |**david** 
     3 |**jeff** 

voter.sql

voter_id | forr |user |candidate_id 
    1 |**mark** |tobe | 1 
    2 |**david** |sandra| 2 
    3 |**jeff** |john | 3 
    4 |**jeff** |steve | 3 
    5 |**david** |linda | 2 
    6 |**mark** |ken | 1 
    7 |**mark** |jacob | 1 

Meine Frage ist, wie ich es an, damit es sich wie eine Liste angezeigt werden kann. z.B.

mark 3 
david 2 
jeff 2 

oder gibt es einen besseren Weg.

+0

Sie haben eine schlechte Datenstruktur. Wenn Sie eine Kandidatentabelle mit einer eindeutigen ID haben, sollten Sie die ID in der zweiten Tabelle verwenden. –

Antwort

2
SELECT forr,count(*) FROM voter 
GROUP BY forr 
ORDER BY 2 DESC 
+0

Während dies die vom OP angeforderten Ergebnisse liefert, werden nicht beide Tabellen verwendet. –

+0

Diese Antwort stimmt mit den Daten wie angegeben. Die Datenstruktur ist jedoch schlecht, da die Kandidaten-ID nicht für den Fremdschlüssel verwendet wird. –

+0

Ich habe die ID des Kandidaten als Fremdschlüssel in der Wähler-Tabelle hinzugefügt, also wie mache ich es mit den beiden Tabellen – arinze

0
SELECT c.candidate, count(*) 
FROM candidate c 
JOIN voter v ON v.forr = c.candidate 
GROUP BY c.candidate 
ORDER BY count(*) DESC, c.candidate ASC 
Verwandte Themen