Ich habe zwei Tabellen Benutzer und Stimmen und einige Benutzer können gleiche haben unq_id
GROUP BY eine andere Tabelle mit
Ich versuche, alle verschiedeneunq_id
von Benutzer auswählen und sortieren sie nach votes
von votes tabelle.
Aber die Ergebnisse sind nicht wie ich erwartet habe, die Stimmen sind doppelt vorhanden. http://sqlfiddle.com/#!9/e0bb35/1
Erwartete Ergebnisse: Sie können
SELECT DISTINCT u.unq_id, COUNT(v.id) AS count_votes
FROM users u
INNER JOIN votes v
ON u.unq_id = v.unq_id
WHERE u.unq_id <> ''
GROUP BY u.unq_id;
SQLFiddle Bild unten sehen in
3fyx6 - 3
9kx9mq - 1
Die allgemeine GROUP BY-Regel sagt: Wenn eine GROUP BY-Klausel angegeben ist, jede Spalte Verweis in der SELECT-Liste muss entweder Identifiziere eine Gruppierungsspalte oder sei das Argument einer gesetzten Funktion! – jarlh
Ihre Tabellenbeziehung sieht komisch aus. Sie sollten einen eindeutigen Bezeichner haben, dem Sie noch nicht beigetreten sind. Das kann nicht funktionieren. –
In der Regel müssen Sie SELECT DISTINCT nicht ausführen, wenn GROUP BY. – jarlh