Avatar billede mishrah Nybegynder
02. oktober 2011 - 15:57 Der er 2 kommentarer og
1 løsning

SQL sætning hjælp - flere tabeller

Hej gutter,

Jeg har to tabeller:

Kategorier
- id
- navn

Billeder
- id
- url
- dato (int - lagret som unix timestamp)
- kategori_id

Jeg har brug for at lave en oversigt over alle kategorierne, hvor jeg under hver kategori viser de 3 nyeste billeder.

Det skal gerne laves i ét SQL kald, så jeg ikke for hver kategori skal lave endnu et opslag.

Nogen der kan knække den?

På forhånd tak,
Martin
Avatar billede HenrikSjang Nybegynder
02. oktober 2011 - 18:10 #1
Det kan klares sådan:

;WITH cte AS (
SELECT
  ROW_NUMBER() OVER(PARTITION BY Kategorier.id ORDER BY Billeder.dato DESC) as rn,
  Kategorier.id as KategoriId,
  Kategorier.navn as KategoriNavn,
  Billeder.id as BilledId,
  Billeder.url,
  Billeder.dato
FROM
  Kategorier
  LEFT OUTER JOIN Billeder ON Kategorier.id = Billeder.kategori_id
)
SELECT *
FROM cte
WHERE rn <= 3
Avatar billede mishrah Nybegynder
02. oktober 2011 - 20:09 #2
Super - det virkede fint!
Smid et svar så du kan få point :)
Avatar billede HenrikSjang Nybegynder
02. oktober 2011 - 20:37 #3
Kommer her :)
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

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