snälla.. det är viktigt :(
Tjenare! Hur gör man en sql-sats till en access för att ta bort alla utom de 10 senaste posterna på varje användare?
tabellen gastbok_inlagg:
|meddelande|fromUser|toUser|id|datum|
tack på förhand!
mvh /Max
Databaser & SQLur Databashanterare & SQL
8 svar · 429 visningar · startad av MoonCow
Tjenare! Hur gör man en sql-sats till en access för att ta bort alla utom de 10 senaste posterna på varje användare?
tabellen gastbok_inlagg:
|meddelande|fromUser|toUser|id|datum|
tack på förhand!
mvh /Max
snälla.. det är viktigt :(
och varför flyttade ni den? till sql... hmm... detta är en accessfråga... eller snarare en sql-satsfråga...
eller snarare en sql-satsfråga
Just därför. Vad har problemet med ASP att göra?
Detta forum behandlar språket SQL.
Man kan använda sig av TOP om man ser till att kolumnen man sorterar efter enbart har unika värden. Så här hade jag försökt:
DELETE FROM gastbok_inlagg WHERE toUser = 12 AND ID NOT IN (SELECT TOP 10 ID FROM gastbok_inlagg WHERE toUser = 12 ORDER BY ID DESC)
Jag lade in villkoret toUser = 12 i frågan, men jag vet inte vad du vill ha där istället.
Mvh,
oj :r är dum dum dum... :) sorry..
funkade helfint det :) loopade igenom alla användare och körde den Sql-satsen på alla...
tnx to the good d00ds att Wf :) och speciellt dig @nders
Det här borde fungera utan att du har en loop
DELETE FROM gastbok_inlagg gi WHERE ID NOT IN " &_
" (SELECT TOP 10 ID FROM gastbok_inlagg WHERE toUser = gi.toUser ORDER BY ID DESC)
Jag har en fråga angående svaret som du gav...
om jag skulle vilja ha samma funktion mot en mysql db, hur skriver jag då?...
-----------------------
strSQL ="DELETE FROM guestbook gi WHERE bookId NOT IN " &_
" (SELECT TOP 10 bookId FROM guestbook WHERE booktill = "& rs("namn") &" ORDER BY bookid DESC)"
Set rs2 = Conn.Execute(strSQL)
----------------------
Vad står "gi" på första raden för?
mvh Henrik
gi är ett korrelationsnamn som används i subselecten för att referera till den aktuella posten i den yttre tabellen.
Så vitt jag förstår så kan du inte få till motsvarande fråga med den begränsade funktionalitet som finns i Mysql. Du är nog tvungen att hämta id för de 10 sista posterna per användare i en loop och sedan bygga en sql-fråga.