शैनन का समाधान जाने का रास्ता है:ऑपरेटर का उपयोग करें NOT IN (या NOT EXISTS)।
हालाँकि आप Oracle में किसी जॉइन को हटा या अपडेट कर सकते हैं, लेकिन सिन्थैक्स MS SQL सर्वर के समान नहीं है:
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 आपको केवल एक जॉइन को अपडेट करने देगा यदि कोई अस्पष्टता नहीं है कि किस आधार पंक्ति को स्टेटमेंट द्वारा एक्सेस किया जाएगा। विशेष रूप से, ओरेकल अपडेट या डिलीट का जोखिम नहीं उठाएगा (कथन विफल हो जाएगा) यदि कोई संभावना है कि शामिल होने में एक पंक्ति दो बार दिखाई दे सकती है। इस मामले में, डिलीट केवल तभी काम करेगा जब my_data(id1, id2, id3, id4).