jeg skal vise nogle gallerier med de nyeste billeder som galleri link men min SQL driller...: SELECT count(id) as nrpics, folder, url, id, title, userid, date FROM oebk_pictures GROUP BY folder ORDER BY date DESC
Det jeg vil have den til er at smide det nyeste billede for hver folder ud så jeg kan vise ET billede for hver folder. Lige nu er det som om at den tager et billede fra hver folder. Og derefter sortere den de data den får ud (altså kun ca 5 records da der kun er 5 folders) gahh.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Forudsat, at id er et autonummereringsfelt, som bliver større hele tiden (det er vist det mest normale), så kunne en mulighed være noget lignende dette:
SELECT * FROM oebk_pictures p WHERE id = ( SELECT MAX(id) FROM oebk_pictures WHERE folder = p.folder)
Det er en sætning som bruger en subselect, som jo har et dårligt navn hvad angår effektivitet (hastighed), da det teoretisk (og hvis databasen optimerer dårligt) skal udføre subselecten for hver række i hovedselecten, så hvis den performer meget dårligt var en anden mulighed en nested select som:
SELECT p.* FROM oebk_pictures p INNER JOIN ( SELECT folder, MAX(id) AS maxid FROM oebk_pictures GROUP BY folder ) pm ON pm.folder = p.folder AND pm.maxid = p.id
Okay, pauser er nogen gange nødvendige. Det hjælper somme tider når man er kørt fast eller har mistet interessen lidt. Velkommen tilbage! :-)
Synes godt om
Ny brugerNybegynder
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.