How to delete a record using inner join on Oracle SQL? How to delete a record using inner join on Oracle SQL? oracle oracle

How to delete a record using inner join on Oracle SQL?


Only one From table is allowed when performing a Delete.try

DELETE FROM A_B WHERE EXISTS (SELECT 1 FROM A   INNER JOIN B ON (B.ID = A_B.B_ID)   WHERE A.ID = A_B.A_ID  AND B.NAME IN ('X', 'Y')   AND A.NAME = 'Z');

reference here


Try:

delete from Awhere A.ID in    (    select A_ID    from A_B    inner join B      on B.ID = A_B.B_ID    where B.NAME in (...)    )and A.NAME = 'Z'


You can try merge

merge into Ausing (select * from A_B inner join B on (B.ID = A_B.B_ID) where B.NAME IN ('X', 'Y')) don (d.A_ID = A.ID)when matched then delete where A.NAME = 'Z';