프로그래밍/DBMS

Maria - DELETE문은 자기 테이블을 참조 못한다

Heidong 2023. 8. 7. 01:50
반응형

에러 : 

DELETE FROM table 
WHERE userid IN (
    SELECT userid FROM table group by tag_name, userid HAVING COUNT(username) > 1
)
;

 

원인 :

table 이란 테이블에서 중복 컬럼들을 찾아서 제거하는 쿼리문을 작성 했는데 

문법에 틀린 부분이 없는데 에러가 발생

알고보니 DELETE를 하려는 테이블에서 WHERE 조건절에 DELETE하려는 테이블을 참조를 못한다는것.

 

해결:

DELETE FROM table 
WHERE userid IN (
	SELECT temp.userid FROM (
		SELECT userid FROM table group by tag_name, userid HAVING COUNT(username) > 1
	) AS temp
)
;

서브쿼리로 감싸서 해당 테이블을 다른 테이블로 명시하면 된다.

 

반응형