Avatar billede hulla Novice
29. oktober 2008 - 20:15 Der er 4 kommentarer og
1 løsning

SQL med top

Hej eksperter.

Jeg har et problem med en query.
Jeg vil gerne trække f.eks. top 2 ud fra en tabel.
Denne tabel skal dog inner joines med en anden tabel så mit resultset f.eks. bliver på 5 rækker.
Jeg vil gerne have de 5 rækker ud, men skal finde en måde at begrænse dem til toppen af tabel 1.

Ex.:
Select top 2 from tbl_1 inner join tbl_2 on id = id;

Dette vil give mig 2 rækker, hvor jeg egentlig gerne ville have haft 5. Nemlig de rækker min inner join vil give.

Noget i retning af et resultset som dette:
1 sdfsdf
1 dfsddf
1 gererer
2 qqqq
2 qqdfdf

Hvor det første tal er fra første tabel og derfor med en top 2 ikke vil give mig nogen rækker med id 3.


Kan det løses med sql?
Avatar billede arne_v Ekspert
29. oktober 2008 - 20:20 #1
proev noget a la:

SELECT TOP 5 *
FROM (SELECT TOP 2 * FROM tbl_1 ORDER BY noget) x JOIN tbl_2 ON x.id=tbl_2.id
ORDER BY noget
Avatar billede hulla Novice
29. oktober 2008 - 20:31 #2
Jeg ved jo ikke om det er 5,. det kan være det bliver 27,.. afhænger helt af hvor mange de enkelte rækker joines med. Der kan jo være mange i tbl 2 der hører til den med id 1 i tbl 1
Avatar billede arne_v Ekspert
29. oktober 2008 - 20:33 #3
Saa drop den yderste TOP.

SELECT *
FROM (SELECT TOP 2 * FROM tbl_1 ORDER BY noget) x JOIN tbl_2 ON x.id=tbl_2.id
Avatar billede hulla Novice
29. oktober 2008 - 20:35 #4
Mig der klumrer i det.
Du har helt ret Arne,. sej og fin sql ,. takker..

Smider du et svar
Avatar billede arne_v Ekspert
29. oktober 2008 - 20:39 #5
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
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