Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Delete records using inner join on Oracle SQL

PAN KEVINAug 21 2019 — edited Aug 21 2019

I use the following Oracle SQL to delete records using inner join

DELETE FROM A

WHERE  EXISTS

(SELECT /*+ PARALLEL(A) */

         1

        FROM   A

        INNER  JOIN B

        ON     CAST(A.UT AS DATE) BETWEEN

               B.STRAT_DATE AND B.END_DATE);

and get 26831495 deleted, but not what I want

SELECT /*+ PARALLEL(A) */

COUNT(*)

FROM   A

INNER  JOIN B

ON     CAST(A.UT AS DATE) BETWEEN

       B.STRAT_DATE AND B.END_DATE;

-- only 343936 records selected

I only want to delete the above 343936 records.

select count(*) from A

--26831495 selected

how to delete the above 343936 records? thanks

the version of Oracle is 12c

This post has been answered by Karthick2003 on Aug 21 2019
Jump to Answer
Comments
Post Details
Added on Aug 21 2019
4 comments
28,033 views