Avatar billede pjarnfelt Nybegynder
02. juli 2005 - 18:59 Der er 8 kommentarer og
1 løsning

SQL select med joins nyeste

Her er et simplificeret design af min database:
http://d30706.monline.dk/database.gif
Pilene illustrerer en til mange relationer, hvor pilhovedet er mange.

Det jeg gerne vil hente ud fra databasen er:
Ti brugernavne, sorteret alfabetisk efter bruernavn og deres nyeste billede.

Så ud for hvert brugernavn, skal der også vises det nyeste billede.

Dette er hvad jeg har siddet og leget med;

SELECT b.dato_uploaded, br.brugernavn FROM bruger AS br, galleri AS g, billeder AS b WHERE g.galleriID = b.galleriID AND br.brugerID = g.brugerID GROUP BY br.brugernavn ORDER BY br.brugernavn DESC LIMIT 0, 10;

Men her er det ikke det nyeste billede der kommer frem.

Hvordan gør man det?
Avatar billede donby Nybegynder
02. juli 2005 - 20:57 #1
Avatar billede pjarnfelt Nybegynder
02. juli 2005 - 21:03 #2
Ellers tak, men det er utroligt svært at vide præcist hvad man skal lede efter, når man ikke ved hvad man skal lede efter.
Avatar billede pjarnfelt Nybegynder
03. juli 2005 - 12:52 #3
Jeg fandt selv ud af det til sidst.

SELECT b.dato_uploaded, br.brugernavn
FROM bruger AS br, galleri AS g, billeder AS b
WHERE g.galleriID = b.galleriID
AND br.brugerID = g.brugerID
GROUP BY br.brugernavn
ORDER BY br.brugernavn ASC , b.dato_uploaded DESC
LIMIT 0 , 10
Avatar billede pjarnfelt Nybegynder
03. juli 2005 - 13:12 #4
Nej...
Det var heller ikke svaret.

Uden GROUP BY, bliver alle resultaterne skrevet ud i den rækkefølge, jeg gerne vil have, men når GROUP BY kommer i, bliver det hele kolapset til midten i stedet for op.
dvs.
uden group:
dato1 brugernavn1
dato2 brugernavn1
dato3 brugernavn1
dato4 brugernavn2
dato5 brugernavn2
dato6 brugernavn2

Med GROUP:
dato2 brugernavn1
dato5 brugernavn2

Jeg vil have:
dato1 brugernavn1
dato4 brugernavn2
Avatar billede beef12 Nybegynder
10. juli 2005 - 03:01 #5
her:

SELECT max(b.dato_uploaded),
br.brugernavn
FROM bruger AS br,
galleri AS g,
billeder AS b
WHERE g.galleriID = b.galleriID
AND br.brugerID = g.brugerID
GROUP BY br.brugernavn
ORDER BY br.brugernavn DESC
Avatar billede beef12 Nybegynder
10. juli 2005 - 03:02 #6
hov... DESC skulskal ændres til ASC
Avatar billede pjarnfelt Nybegynder
10. juli 2005 - 16:44 #7
ahh...
så simpelt :)

mange tak beef12.

smider du lige et svar denne vej?
Avatar billede beef12 Nybegynder
10. juli 2005 - 16:52 #8
jeps :-)
"skulskal" ?? Jeg må ha være træt der kl. 3 i nat da jeg skrev det indlæg :-)
Avatar billede pjarnfelt Nybegynder
11. juli 2005 - 07:56 #9
hehe.
jeg forstod hvad du mente ;)
Og det virker.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester