Manchmal kommt es vor, dass Datensätze gelöscht werden sollen, die einfach mit ihrer ID in einer anderen – vielleicht temporären – Tabelle gesammelt sind. Dies funktioniert ganz gut mit “exists”.
Hier ein Beispiel. Gegeben sind die zwei Tabellen:
create table tbl_a ( id integer, description varchar(100) ); create table tbl_b ( id integer );
Aus der Tabelle “tbl_a” sollen nun alle Datensätze gelöscht werden, die in der Tabelle “tbl_b” enthalten sind – also für die gilt tbl_a.id = tbl_b.id. Dies funktioniert dann mit:
delete from tbl_a a where exists (select (1) from tbl_b b where a.id = b.id)
Dieses Beispiel basiert auf der Datenbank Oracle.