MySQL: rendezés GROUP BY előtt
Szevasztok!
Szeretnék kérni egy kis segítséget, mert elakadtam.
Adott egy képalbum. Szeretném kiválasztani a legjobb képeket felhasználónként csoportosítva, egy konkrétan megadott albumon belül.
A tábla - a kérdésben említett része - így néz ki:
Ebből szeretnék egy ilyesmit:
Attól, hogy *-ot kérek le és, hogy a GROUP és az ORDER fordítva van, kérlek Titeket, tekintsünk el.
Az érthetőség miatt írtam így.
Köszönöm a segítséget előre is!
■ Szeretnék kérni egy kis segítséget, mert elakadtam.
Adott egy képalbum. Szeretném kiválasztani a legjobb képeket felhasználónként csoportosítva, egy konkrétan megadott albumon belül.
A tábla - a kérdésben említett része - így néz ki:
userid | albumid | rating |
---|---|---|
1 | 1 | 5 |
1 | 1 | 3 |
2 | 1 | 5 |
2 | 1 | 3 |
1 | 2 | 5 |
1 | 2 | 2 |
Ebből szeretnék egy ilyesmit:
SELECT * FROM table WHERE albumid = 1 ORDER BY rating DESC GROUP BY userid
userid | albumid | rating |
---|---|---|
1 | 1 | 5 |
2 | 1 | 5 |
Attól, hogy *-ot kérek le és, hogy a GROUP és az ORDER fordítva van, kérlek Titeket, tekintsünk el.
Az érthetőség miatt írtam így.
Köszönöm a segítséget előre is!
HAVING
:(
Picit át kellett alakítani, mert csak így fogadta el:
talán így
:(
Írtam egy ilyet:
Csak az a baj, hogy a MySQL nem ismeri a rate oszlopot a join-nál, illetve megint többször szerepelne mindenki, mert több ugyanolyanra értékelt elem lehet.
Vagyis megint kellene egy GROUP BY, de azt megint rendezni kéne rating szerint ... és akkor kezdődik minden előről.
kész
A duplikátumokat PHP-val kiszedtem, és így rendben van.
Köszönöm a segítséget! :)