DELETE FROM WHERE 절을 사용했더니 발생.
DELETE FROM sample
where id not in (
SELECT ms.id FROM
(
sample as ms
INNER JOIN process
ON process.id = sample.processid
)
);
MySQL 은 Oracle 과는 달리 UPDATE 나 DELETE 시 자기 테이블의 데이타를 바로 사용 못하므로 아래와 같은 SQL 을 실행시 1093 에러가 발생함.
서브쿼리의 From 구는 임시 테이블을 하나 더 만들어서 해결한다.
DELETE FROM sample
where id not in (
SELECT temp2.id
FROM
(
SELECT temp1.id
FROM sample as temp1
INNER JOIN process
ON process.id = temp1.processid
) as temp2
);