MySQL에서이 쿼리를 실행하는 동안 오류가 발생합니다. MySQL은 JOIN의 결과 집합을 사용하여 일부 레코드를 삭제하려고합니다. 같은 테이블.MySQL : 같은 테이블을 사용하는 이전 쿼리의 결과에서 삭제
어떻게하면 쿼리를 다시 작성할 수 있습니까?
DELETE FROM hr_descr2
WHERE
id IN (SELECT
a.id
FROM
hr_descr2 a,
hyperreview_descr b
WHERE
a.titolo = b.titolo
AND a.recensione != b.recensione
AND a.recensione != ''
AND b.recensione != ''
AND ABS(LENGTH(a.recensione) - LENGTH(b.recensione)) > 40);
나는이 방법으로 쿼리를 다시 시도했지만 작동하지 않습니다 :
WITH temp AS(SELECT
a.id
FROM
hr_descr2 a,
hyperreview_descr b
WHERE
a.titolo = b.titolo
AND a.recensione != b.recensione
AND a.recensione != ''
AND b.recensione != ''
AND ABS(LENGTH(a.recensione) - LENGTH(b.recensione)) > 40)
DELETE FROM hr_descr2
WHERE
id IN (select id from temp);
예, 그들을 지원 사용할 수 있으며 CTE가 마이크로 소프트에 고유 한 이름이며, 또한 오라클을 지원하지만 그들은 다른 이름으로 그들에게 전화. – Revious
@ 이전 버전에서 실행중인 mysql의 버전은 무엇입니까? – Dan
만약 내가 틀렸어도 ..하지만 CTE가 mysql에서 선택으로 만 작동한다고 생각해. – Revious