PDA

Bekijk Volledige Versie : [mysql] selecteren van de hoogste waarde voor een bepaalde id



Rob Hanssen
18/02/03, 14:55
Hoi ,

ik ben bezig met het opzetten van een systeem voor een TourdeFrance pool op
mijn werk, deze heeft de volgende terzake doende tables

CREATE TABLE team (
teamid int(11) NOT NULL auto_increment,
teamnaam varchar(255) NOT NULL default 'noname',
teamemail varchar(255) default NULL,
PRIMARY KEY (teamid)
);

CREATE TABLE points (
pointsid int(11) NOT NULL auto_increment,
teamid int(11) NOT NULL default '0',
etappeid int(2) NOT NULL default '0',
points int(3) NOT NULL default '0',
PRIMARY KEY (pointsid),
UNIQUE KEY teamid (teamid,etappeid)
);

etappeid geeft de etappe aan, het team 'teamid' heeft bij etappe 'etappeid'
'points' punten gehaald.

nu zou ik graag de hoogste score en het(de) team(s) met die hoogste score
per etappeid willen bepalen. Hoe moet ik dat doen?

"SELECT teamnaam, max(points) as maxpoint from team,points WHERE
team.teamid = points.teamid GROUP by etappeid" schijnt niet te werken omdat
dan maar een teamnaam wordt gegeven, die bovendien niet correspondeert met
de hoogste waarde.

Help?

groeten,
Rob.

boodha
18/02/03, 17:55
<knip mysql>

Ik dacht dat het makkelijk met LIMIT kon in Mysql.
Misschien eens googelen.

--
+++-BooDha-+++
---------------------------
---www.boo-dha.com---
---------------------------
"don't quit your day job"

uws
18/02/03, 19:15
I <b2tdgp$qol$1@news.tue.nl>, Rob Hanssen skrev:
> "SELECT teamnaam, max(points) as maxpoint from team,points WHERE
> team.teamid = points.teamid GROUP by etappeid" schijnt niet te werken omdat
> dan maar een teamnaam wordt gegeven, die bovendien niet correspondeert met
> de hoogste waarde.

Probeer eens:

SELECT max(p.points) as maxpoints, t.teamnaam FROM points p LEFT JOIN team USING (teamid) GROUP BY p.etappeid

Niet getest, natuurlijk.

--
uws mail uws@xs4all.nl

i know secrets :: i've never been told -- heather nova