---
title: "where not exists för ver 4.0.24"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/182961-where-not-exists-för-ver-4-0-24"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "chha33"
published: "2010-03-25T17:41:32.000Z"
updated: "2010-03-25T18:36:46.000Z"
replies: 1
views: 484
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/182961-where-not-exists-för-ver-4-0-24"
---

# where not exists för ver 4.0.24

## #1 — chha33, 2010-03-25T17:41Z

Hej jag vill ta bort rader i tabellen netgym_smshist där netgym_smshist.medlemmarID saknas i netgym_medlemmar.ID (dvs medlemmar som tagits bort). Detta fungerar ej:

DELETE FROM netgym_smshist WHERE NOT EXISTS (SELECT \* FROM netgym_medlemmar WHERE netgym_medlemmar.ID = netgym_smshist.medlemmarID)

(Har även prövat med WHERE NOT IN)

Antar eftersom jag använder mySQL 4.0.24?

Nån som har motsvarande SQL-sats som fungerar i denna version?

Tack.

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

## #2 — nitro2k01, 2010-03-25T18:36Z

Detta bör funka, men se för säkerhets skull till att göra en backup innan ifall jag tänkte fel!

```
DELETE FROM netgym_smshist 
LEFT JOIN netgym_medlemmar ON netgym_medlemmar.ID = netgym_smshist.medlemmarID
WHERE netgym_medlemmar.ID IS NULL;
```

Logiken är följande: LEFT JOIN joinar in alla rader från netgym_medlemmar där ID matchar, men LEFT JOIN tillåter till skillnad från en (INNER) JOIN att rader från netgym_smshist väljs även om ingen matchning finns för den raden. I de fallen får netgym_medlemmar.ID värdet null, och det används i WHERE-kriteriet för att filtrera fram de rader som saknar motsvarand medlems-ID.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/182961-where-not-exists-för-ver-4-0-24
