开发者

ERROR ::QUERY FAILING in DELETE STATEMENT

开发者 https://www.devze.com 2023-04-05 14:10 出处:网络
I have a requirement that I want rows selected based on a condition from table A and table Bmust be deleted.

I have a requirement that I want rows selected based on a condition from table A and table B must be deleted.

For example EMP and EMP1 are two tables

Merge into emp1 a 
using (select * from emp) b 
  on (a. empno =b.empno)
WHEN MATCHED THEN DELETE
where(b.LOC='NEW YORK');

The above query results in error. If I use Where exists, all rows are deleted in Table A, which is not a right sol开发者_运维知识库ution.

delete from emp1 a 
where exists
      ( select null 
        from emp b 
        where a. empno =b.empno 
          and b.LOC='NEW YORK' 
      );

Please suggest


DELETE FROM emp1 a 
WHERE a.empno IN 
      ( SELECT b.empno 
        FROM emp b 
        WHERE b.LOC = 'NEW YORK' 
      );


I am not familiar with the MERGE statement, but I will say that emp b isn't properly declared because the b is outside the parenthesis.

Also, I would suggest first making a view (or a temporarily joined table) to be able to see what items match up before executing a DELETE command. Then you can use DELETE based on the view and easily delete from both tables.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号