30. september 2007 - 11:41Der er
9 kommentarer og 1 løsning
Hjælp til join af et par tabeller
Hejsa,
Jeg har ikke vitterligt styr på MySQL's joins m.v. og derfor håber jeg lidt at i kan hjælpe mig.
Jeg har et point system, hvor at brugere får tildelt nogen point.
Det bliver gemt i 2 tabeller.
konkurrence (konkurrence og den der vinder får point) id | user_id |
point (her gemmes hver gang man får point, med dato osv.) id | user_id | point |
Jeg kan jo sagtens som jeg har gjort nu, lave en while($row = mysql_fetch_array($get)) og køre users igennem og hive point ud og udskrive dem.
Men jeg vil gerne i den while/query selecte, således at jeg kan udskrive efter flest point, så den der har flest point har 1 pladsen, og næste 2. pladsen, osv.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg går ud fra at hver person tildeles et nyt user_id i hver konkurrence. Ellers skal der også konkurrence_id på point-tabellen. I din model er der jo ellers ingen reference mellem en bestemt konkurrence og de opnåede point.
select p.user_id, sum(p.point) from point p, konkurrence k where k.id = 1 (erstat med konkurrence.id) and k.user_id = p.user_id group by p.user_id
Der er fordi der bliver flere joins, som hver indeholder allepointene, når konkurrence_id ikke er med i where-clausen.
select p.user_id, sum(p.point) from point p, konkurrence k where k.id = 1 (erstat med konkurrence.id) and k.user_id = p.user_id and k.konkurrence_id = p.konkurrence_id group by p.user_id
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.