---
title: "ta bort alla poster utom användarens top 10"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/42779-ta-bort-alla-poster-utom-användarens-top-10"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "MoonCow"
published: "2002-04-29T20:37:24.000Z"
updated: "2002-05-02T09:39:48.000Z"
replies: 8
views: 432
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/42779-ta-bort-alla-poster-utom-användarens-top-10"
---

# ta bort alla poster utom användarens top 10

## #1 — MoonCow, 2002-04-29T20:37Z

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

Permalänk: https://www.webforum.nu/p/42779

## #2 — MoonCow, 2002-05-01T16:45Z

snälla.. det är viktigt :(

Permalänk: https://www.webforum.nu/p/663740

## #3 — MoonCow, 2002-05-01T16:45Z

och varför flyttade ni den? till sql... hmm... detta är en accessfråga... eller snarare en sql-satsfråga...

Permalänk: https://www.webforum.nu/p/663741

## #4 — @nders, 2002-05-01T16:52Z

> 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,

Permalänk: https://www.webforum.nu/p/663745

## #5 — MoonCow, 2002-05-01T19:35Z

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

Permalänk: https://www.webforum.nu/p/663833

## #6 — @nders, 2002-05-01T19:36Z

Najsigt!

Vassego!

Mvh,

Permalänk: https://www.webforum.nu/p/663834

## #7 — LarsG, 2002-05-01T19:37Z

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)
```

Permalänk: https://www.webforum.nu/p/663837

## #8 — henkz, 2002-05-02T07:14Z

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

Permalänk: https://www.webforum.nu/p/664040

## #9 — LarsG, 2002-05-02T09:39Z

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.

Permalänk: https://www.webforum.nu/p/664124

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/42779-ta-bort-alla-poster-utom-användarens-top-10
