Hi!
hier zuerst mal der relevante teil der DB:
----------
CREATE TABLE users
(uid
bigint(20) unsigned NOT NULL default '0', vid
int(10) unsigned NOT NULL default '0',oid
tinyint(3) unsigned NOT NULL default '0',ip
varchar(15) NOT NULL default '',PRIMARY KEY (uid
,vid
)) TYPE=MyISAM COMMENT='Users and Vote Table';
CREATE TABLE vote
(vid
int(10) unsigned NOT NULL auto_increment,name
varchar(200) NOT NULL default '',PRIMARY KEY (vid
),UNIQUE KEY name
(name
)) TYPE=MyISAM COMMENT='Main Vote Table' AUTO_INCREMENT=8 ;
CREATE TABLE vote\_option
(vid
int(10) unsigned NOT NULL default '0', oid
tinyint(3) unsigned NOT NULL default '0',name
varchar(200) NOT NULL default '',PRIMARY KEY (vid
,oid
)) TYPE=MyISAM COMMENT='Vote options';
INSERT INTO users
VALUES (101, 7, 2, '101');
INSERT INTO users
VALUES (102, 7, 3, '102');
INSERT INTO users
VALUES (103, 7, 3, '103');
INSERT INTO users
VALUES (104, 7, 4, '104');
INSERT INTO vote\_option
VALUES (7, 1, 'opt1');
INSERT INTO vote\_option
VALUES (7, 2, 'opt2');
INSERT INTO vote\_option
VALUES (7, 3, 'opt3');
INSERT INTO vote\_option
VALUES (7, 4, 'opt4');
INSERT INTO vote\_option
VALUES (7, 5, 'opt5');
----------
dann das SELECT-Query:
----------
SELECT options.oid, options.name AS name
, COUNT(*) AS votes
FROM BVP_vote_option options
LEFT JOIN BVP_users users
ON options.oid = users.oid WHERE users.vid = 7 GROUP BY users.oid ORDER BY votes
DESC
----------
und das Ergebnis:
----------
3 opt3 2
4 opt4 1
2 opt2 1
----------
das Problem:
müssten es nicht 5 Datensätze sein? der LEFT-JOIN ist ja dazu da dass alles angezeigt wird, ich hätte mir als Ergebniss sowas vorgestellt:
----------
3 opt3 2
4 opt4 1
2 opt2 1
1 opt1 0
5 opt5 0
----------
weiß jemmand was da schief gelaufen ist bzw. wie ich zum gewünschten Ergebnis komme?
thx