Alle Datensätze von Tabelle1 löschen die auch in Tabelle2 enthalten sind

andi060283

Benutzer
Beiträge
8
Hallo,

ich habe 2 Datenbanken, die jeweils 1 Spalte "E-Mail" enthalten.

Ich möchte alle Datensätze von Tabelle1 löschen, in welcher auch in Tabelle2 die E-Mailadresse enthalten ist.
Es sollen nur noch die Datensätze in Tabelle2 übrig bleiben die nicht in Tabelle1 stehen.

Grüße Andreas
 
Werbung:
Code:
andreas@[local]:5432/test# select * from t1;
 email
-------
 mail1
 mail3
 mail4
(3 rows)

andreas@[local]:5432/test*# select * from t2;
 email
-------
 mail2
 mail3
(2 rows)

andreas@[local]:5432/test*# delete from t1 where email in (select email from t2);
DELETE 1
andreas@[local]:5432/test*# select * from t1;
 email
-------
 mail1
 mail4
(2 rows)

andreas@[local]:5432/test*#
 
Eventuell must du beim Abgleich Groß- und Kleinschreibung beachten, das wäre aber nicht weiter schwer:
Code:
delete from t1 where lower(email) in (select lower(email) from t2);
Kann aber sein das es per Default erstmal nicht beachtet wird und auch ohne lower() alles bereinigt.
 
Werbung:
Zurück
Oben