EXCEPT-Anweisung in MS-Access

Hallo Xperten,

ich brauche mal wieder Euren Rat:
Und zwar hab ich zwei Tabellen (Acc97+2000) mit jeweils um die 20.000 Datensätzen (nur eine einzige Spalte). Ich benötige nun eine Abfrage über _ alle Sätze, die in Tabelle1, aber nicht in Tabelle2 _ vorkommen.

Grundsätzlich funktioniert das wohl so:
SELECT Feldname FROM Tabelle1 WHERE Feldname Not In (SELECT Feldname FROM Tabelle2:wink:;

Bei wenigen hundert Datensätzen läuft die Abfrage 10 bis 20 Sekunden. Bei über 20.000 Datensätzen läuft sie ewig…

Kann mir da jemand einen Tipp geben, wie ich das etwas beschleunigen kann? Ich habe was über die EXCEPT-Anweisung und INTERSECT gelesen, aber es sieht so aus, als würde das nicht von Access unterstützt…?!

Ich freue mich über jeden Hinweis; vielen Dank!

Gruß
(Woly)

Schau mal hier: http://www.donkarl.com/FAQ/FAQ3TAbfragen.htm#3.16 (FAQ 3.16)

Gruß aus dem Norden
Reinhard Kraasch (http://www.kraasch.de - Access Tipps & Tricks)

hi!

Hallo Xperten,
Grundsätzlich funktioniert das wohl so:
SELECT Feldname FROM Tabelle1 WHERE Feldname Not In (SELECT
Feldname FROM Tabelle2:wink:;

Bei wenigen hundert Datensätzen läuft die Abfrage 10 bis 20
Sekunden. Bei über 20.000 Datensätzen läuft sie ewig…

ein „where not exists (select … where a.primary_key = b.primary_key)“ müßte reichenm, um eine sichtbare verbesserung zu erringen

grüße,
tomh

Da hege ich - mit Verlaub - Zweifel. Sub-Selects sind in Access in der Regel sehr lahm, wohingegen JOINS optimiert werden.

Gruß aus dem Norden
Reinhard Kraasch