# Nur den ersten Datensatz löschen wenn mehrere gleiche da sind



## uNh0Ly (1. Jul 2011)

Hallo zusammen,
ich hab folgendes Problem. Ich hab ne Datenbank angelegt, die eine n:m Beziehung darstellen sollte. Dementsprechend auch eine zwischentabelle erstellt die 2 andere Tabellen mit einander verknüpft
die sieht ungefähr so aus

a c
----------- -----------
1 1
1 1
1 2
1 2
1 2

ich weiss suboptimal kein primärschlüssel und keine eindeutige identifikationsmöglichkeit. Das ist auch atm das Problem. ich würde gerne aus der Tabelle 1 Datensatz rauslöschen und falls es ihn mehrmals gibt nur den ersten und nicht alle ... mit "Delete from xy WHERE a = 1 AND b=2" ist werden alle rausgelöscht

a c
----------- -----------
1 1
1 1

Ich will hjedoch nur dass der erste gelöscht wird also so

a c
----------- -----------
1 1
1 1
1 2
1 2

Gibt es da eine Möglichkeit?
Vielen Dank im voraus.
unholy


----------



## HoaX (1. Jul 2011)

Limit 1?


----------



## utnovetur (2. Jul 2011)

Hallo,

dumm gelaufen, dass du keinen eindeutigen Key hast. Manche Datenbanken erstellen aber selber einen Key (z.B. ROWID). Dann kannst du probieren:


```
Delete from xy WHERE a = 1 AND b=2 and ROWID = (select min(ROWID) from xy WHERE a = 1 AND b=2)
```


----------

