다음과 같은 쿼리를 시도하고 있습니다.
DELETE FROM term_hierarchy AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM term_hierarchy AS th1
INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)
WHERE th1.parent = 1015
);
알 수 있듯이 동일한 tid에 다른 부모가있는 경우 1015에 대한 부모 관계를 삭제하고 싶습니다. 그러나 구문 오류가 발생합니다.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM ter' at line 1
문서를 확인하고 하위 쿼리를 자체적으로 실행했는데 모두 확인한 것 같습니다. 아무도 여기서 무엇이 잘못되었는지 알아낼 수 있습니까?
업데이트 : 아래에 대답했듯이 MySQL은 삭제하려는 테이블을 조건에 대한 하위 쿼리에 사용하는 것을 허용하지 않습니다.
DELETE t FROM table t ...