Решението на Шанън е правилният начин:използвайте оператора NOT IN (или NOT EXISTS).
Можете обаче да изтриете или актуализирате присъединяване в Oracle, но синтаксисът не е същият като MS SQL Server:
SQL> DELETE FROM (SELECT grp.*
2 FROM grp
3 LEFT JOIN my_data ON grp.id1 = my_data.id1
4 AND grp.id2 = my_data.id2
5 AND grp.id3 = my_data.id3
6 AND grp.id4 = my_data.id4
7 WHERE my_data.id1 IS NULL);
2 rows deleted
Освен това Oracle ще ви позволи да актуализирате присъединяване само ако няма неяснота относно това кой основен ред ще бъде достъпен от оператора. По-специално, Oracle няма да рискува с актуализация или изтриване (изявлението ще се провали), ако има възможност ред да се появи два пъти в присъединяването. В този случай изтриването ще работи само ако има УНИКАЛНО ограничение за my_data(id1, id2, id3, id4).