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.
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.