Jag har en sql som tar fram vilka rader jag skall ta bort ur tableA: Hej. Hmm, när jag kollar lite närmre på frågan så borde även detta fungera Argh, jag måste börja läsa/tänka igenom lite innan jag svara på sånt här :-P <b>Ok, fungerar. Förutom att Access kräver "DELETE * FROM...."</b>Delete SQL hjälp!
SELECT DISTINCT tableA.ID
FROM tableA LEFT JOIN tableB ON tableA.ID= tableB.ID
WHERE (((tableB.ID) Is Null));
...problemet är nu att jag inte kan få till syntaxen att ta bort dessa
poster i 1 SQL-sats, utan måste loopa igenom denna SQL-sats resultat
för att ta bort från tableA:
DELETE * FROM tableA WHERE ID=" & ID från SQL-sats ovan
Någon som vet?Sv: Delete SQL hjälp!
Detta borde fungera i SQL iaf, men jag är inte helt säker på Access
DELETE FROM tableA WHERE ID IN (
SELECT DISTINCT tableA.ID
FROM tableA LEFT JOIN tableB ON tableA.ID= tableB.ID
WHERE tableB.ID Is Null
)
// MvH Björne
Sv:Delete SQL hjälp!
DELETE FROM tableA WHERE ID Is Null
// MvH Björne
Sv: Delete SQL hjälp!
Jag antar att du vill ta bort alla rader från tableA, där det inte finns någon motsvarighet i tableB
DELETE FROM tableA WHERE ID NOT IN (SELECT ID FROM tableB)
// MvH Björne
Sv: Delete SQL hjälp!
Nej, Access kräver inte *. Det är felaktig syntax som inte accepteras av de flesta databaser, Access accepterar dock * men det är inget krav. Du ska alltså köra "DELETE FROM..." för att vara kompatibel med andra databaser.
/Johan