Avatar billede Jonasmp Nybegynder
07. februar 2012 - 01:28 Der er 6 kommentarer og
1 løsning

Optimal Query

Jeg har en debat tabel Der ser sådan her ud:

Posts
-----------------
ID int (identity) primær nøgle
BRUGER_ID int (reererer brugere i en anden tabel)
OVERSKRIFT varchar
KOMMENTAR varchar
DATO (datetime fra hvornår indlæget er lavet)
POST_ID int (fremmed  nøgle til ID i samme tabel)

Dvs når POST_ID er null så er det en ny tråd og ellers er det svar på en eksisterende tråd hvor POST_ID refererer til ID på den oprindelige tråd.

Nu skal jeg bruge en list over de seneste 10 tråde der har været indlæg i, og hver tråd må kun listes en gang. Dvs selvom de 10 seneste indlæg har været i samme trå tæller det kun for en.
Avatar billede Syska Mester
07. februar 2012 - 01:58 #1
Input og ikke direkte svar.

Jeg ville dele det op.

Threads og Posts. I thrads kan du ofte flere ting end i Posts.
Thread har en LastPost date som bliver sat når der bliver posted.
Værdien er NULL når der endnu ikke har været en post.

Det andet du har gang i kan godt komme til at virke, men du vil ikke få en god performance ud af det.

Hvis du vil den vej, så kan dette hjælpe dig.

SELECT * FROM Posts P INNER JOIN (
SELECT TOP 10 MAX(POST_ID) AS [POST_ID] FROM Posts WHERE POST_ID != null GROUP BY ID ORDER BY ID DESC ) AS T1 ON P.POST_ID = T1.POST_ID

Syntax burde være rigtig og give dig en ide om hvordan du kan gøre.
Avatar billede niklask Nybegynder
07. februar 2012 - 08:34 #2
SELECT TOP 10 * FROM Posts
WHERE POST_ID IS NULL
ORDER BY DATO DESC
Avatar billede niklask Nybegynder
07. februar 2012 - 08:35 #3
Hovsa, læste forkert. Glem det indlæg.
Avatar billede Jonasmp Nybegynder
08. februar 2012 - 08:14 #4
Hej Buzzz

Tak for hjælpen, din query gav ikke noget resultat, men rettede en lille ting og nu virker det så du får point.
Avatar billede Syska Mester
08. februar 2012 - 17:02 #5
:-)

Hvad var fejlen ... har jeg sovet i timen. Skrevet fra memory.

og svar.
Avatar billede Jonasmp Nybegynder
10. februar 2012 - 09:27 #6
Den skulle bare have group by post_id istedet for id
Avatar billede Syska Mester
10. februar 2012 - 18:42 #7
Hahah, ja ... en "brain fart" der, men du fangede ideen :-)
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