Anmelden

View Full Version : SQL Sätze löschen, wenn nicht in Datei vorhanden



programmer400
06-06-16, 17:31
Hab in diesem Forum einmal einen Eintrag über SQL gefunden, mit dem man Datensätze in einer Datei löschen kann, wenn diese in der zweiten Datei nicht vorhanden sind (Verküpfung über Schlüsselfeld).

Ich kann diesen Eintrag leider nicht mehr finden.

Bitte um Hilfe.

andreaspr@aon.at
06-06-16, 19:23
Meinst du sowas?

Delete from Tab1
Where Tab1.id not in (Select Tab2.id From Tab2)

Oder wenn der Satz automatisch gelöscht werden soll:

Create Table Tab1 ... ON DELETE CASCADE

lg Andreas

malzusrex
06-06-16, 19:25
Das müsste wie folgt gehen

Delete from File1
where not exists (Select * from file2 where file1.key1 = file2.key1 and file1.key2 = file2.key2 ....)


Gruß
Ronald

Fuerchau
06-06-16, 20:17
Beide Varianten sind korrekt.
not in (select....) <= erfordert keinen Index und könnte bei kleineren Tabellen schneller sein
[not] exists (select ...) <= ist am schnellsten mt einem Index.

programmer400
06-06-16, 20:45
Super, Danke für die Hilfe, hat mir viel weitergeholfen.

Schönen Abend noch.