Hallo,
und zwar scheitere ich an dem correcten sql (outer join) Befehl um 2 Tabellen zu verknüpfen.
Tabelle 1:
user
----------
id, name
Tabelle 2:
votes:
-----------
id, article, uid, voted-by
Mit:
("SELECT `uid` , COUNT( uid) AS count FROM `votes` GROUP BY `uid` ORDER BY count DESC");
bekomme ich eine Rangfolge der Votes Tabelle, in der die uid des top gevoteten articels bekomme. Hat ein article keine Votes, steht er folglich nicht in der votes tabelle, wird also beim obigen Befehl nicht berücksichtigt.
Es sollten aber alle Teilnehmer dargestellt werden, auch die mit "0 Votes".
Wie joine ich die obige Abfrage mit meiner user Tabelle, damit im entstehenden Resultset alle user dargestellt werden?
Ich hätte folgendes gedacht, haut aber nicht hin:
TIA und Gruß,
sv
und zwar scheitere ich an dem correcten sql (outer join) Befehl um 2 Tabellen zu verknüpfen.
Tabelle 1:
user
----------
id, name
Tabelle 2:
votes:
-----------
id, article, uid, voted-by
Mit:
("SELECT `uid` , COUNT( uid) AS count FROM `votes` GROUP BY `uid` ORDER BY count DESC");
bekomme ich eine Rangfolge der Votes Tabelle, in der die uid des top gevoteten articels bekomme. Hat ein article keine Votes, steht er folglich nicht in der votes tabelle, wird also beim obigen Befehl nicht berücksichtigt.
Es sollten aber alle Teilnehmer dargestellt werden, auch die mit "0 Votes".
Wie joine ich die obige Abfrage mit meiner user Tabelle, damit im entstehenden Resultset alle user dargestellt werden?
Ich hätte folgendes gedacht, haut aber nicht hin:
SELECT `uid` , COUNT( uid) AS count FROM `votes` OUTER JOIN user ON (user.id = votes.uid) GROUP BY `uid` ORDER BY count DESC
sv
Comment