본문 바로가기
MySql

MySQL 조인을 사용하여 하나의 테이블에서 삭제

by 베이스 공부 2020. 10. 30.
반응형

다른 선택 기준에 따라 한 데이터베이스에서 레코드를 삭제하려고합니다. 작업 및 이메일 목록을 저장하는 두 개의 테이블 emailNotification이 있습니다. 그럼 우리는 직업이 있습니다. 마감 된 작업에 대한 emailNotifications를 지우고 싶습니다. 이 유형의 구문으로 이끄는 Stackoverflow에서 이전 예제를 찾았습니다 (이전에 where 전에 조인을 시도했습니다).

DELETE FROM emailNotification
WHERE notificationId IN (
 SELECT notificationId FROM emailNotification e
 LEFT JOIN jobs j ON j.jobId = e.jobId
WHERE j.active = 1
)

오류가 발생합니다. FROM 절에서 업데이트 할 대상 테이블 'emailNotication'을 지정할 수 없습니다.

 

해결 방법

 

귀하의 요구 사항에 대해 잘 모르겠습니다. What I understood from your question is you want to delete all the emails of jobs which are closed. 이거 한번 해봐;

DELETE e FROM emailNotification e 
LEFT JOIN jobs j ON j.jobId = e.jobId 
WHERE j.active = 1 AND CURDATE() < j.closeDate

 

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

 

 

반응형

댓글