본문 바로가기
MySql

MySQL Mysql delete with subquery

by 베이스 공부 2020. 9. 25.
반응형

가능한 중복 :


일부 행을 삭제하려고하는데 현재 성공하지 못했습니다.

DELETE FROM product_pictures 
WHERE picture = (SELECT picture FROM product_pictures WHERE id = ?)

FROM 절에서 업데이트 할 대상 테이블 'product_pictures'를 지정할 수 없습니다.

이 오류 메시지를 본 적이 없으며 내가 뭘 잘못하고 있는지에 대한 유용한 정보를 찾을 수 없었습니다.

행의 예 :

ID    Picture
19    picture-grey.jpg
20    picture-grey.jpg
21    picture-grey.jpg

 

해결 방법

 

DELETE a 
FROM product_pictures AS a
  JOIN product_pictures AS b
    ON b.picture = a.picture
WHERE b.id = ?

또는:

DELETE a 
FROM product_pictures AS a
  JOIN 
    ( SELECT DISTINCT picture
      FROM product_pictures
      WHERE id = ?
    ) AS b
    ON b.picture = a.picture

 

참조 페이지 https://stackoverflow.com/questions/8527569

 

 

반응형

댓글