webForumDet fria alternativet
Logga in / Bli medlem

Fel i SQL-sats

ASP

3 svar · 232 visningar · startad av jepsO

Medlem sedan mars 2001484 inlägg
Trådstart#1

Jag försöker fixa sidindelning till mitt forum, men det buggar en smula. Här är SQL-satsen:

SELECT newthreads.*, replies.repID, replies.ReplyOrder, replies.lvl, replies.repAuth, replies.repSubj, replies.repMsg, replies.repDatumtid, replies.repMember 
FROM newthreads 
LEFT JOIN replies ON newthreads.newID = replies.newID 
[b]WHERE NOT newthreads.newID IN (SELECT TOP 10 * FROM newthreads ORDER BY newID)[/b]
ORDER BY newthreads.newID DESC, replies.ReplyOrder

page är den nuvarande sidan "minus ett", dvs sida 1 = page 0. PerPage är en variabel som bestämmer antalet inläggstrådar per delsida. F.n. ligger den på 10.

Jag försöker alltså selecta alla inläggstrådar utom de [page*PageNum] första. Allt funkar fint utom WHERE newthreads.newID NOT IN (SELECT TOP 10 * FROM newthreads ORDER BY newID).

Först tänkte jag använda rs.Move page*PerPage innan jag loopade fram alla poster, men det fungerar ju inte när jag selectar både inläggstrådar (newthreads) och svar (replies) i samma recordset.

Finns det kanske rentav ett bättre sätt att göra detta?

Medlem sedan juni 200032 967 inlägg
#2

du kan ju inte jämföra newID mot alla fält. prova detta:

WHERE NOT newthreads.newID IN (SELECT TOP 10 newID FROM newthreads ORDER BY newID)
Medlem sedan dec. 200012 464 inlägg
#3

Du kan inte använda * i subselecten.

SELECT newthreads.*, replies.repID, replies.ReplyOrder, replies.lvl, replies.repAuth, replies.repSubj, replies.repMsg, replies.repDatumtid, replies.repMember 
FROM newthreads 
LEFT JOIN replies ON newthreads.newID = replies.newID 
WHERE newthreads.newID not IN (SELECT TOP 10 newID FROM newthreads ORDER BY newID)
ORDER BY newthreads.newID DESC, replies.ReplyOrder

Om du placerar NOT vid IN eller inte har ingen betydelse men jag tycker att det är tydligare att skriva så som jag gjort.

Medlem sedan mars 2001484 inlägg
#4

Kom på det :)
Jag var dock tvungen att leka lite till, eftersom SELECT TOP 0 inte fungerade så bra. Tack iaf för hjälpen - jag har en tendens att lösa problem efter att ha frågat om hjälp med innan svaret på frågan kommit :).

Resultatet finns iaf på http://bwsm.cjb.net/ .

257 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)