본문으로 바로가기

MySQL - 없으면 삭제하기 DELETE NOT EXISTS

category 코딩/SQL_Query 2023. 9. 7. 17:14

두개의 테이블을 비교하여, 대상 테이블에 없다면 이쪽 테이블에서도 삭제한다.

 

JOIN 을 사용하는 방법

DELETE b FROM BLOB b
	LEFT JOIN FILES f ON f.id = b.fileid
		WHERE f.id IS NULL

 

NOT EXISTS 를 사용하는 방법

DELETE FROM BLOB
 WHERE NOT EXISTS(SELECT NULL
					FROM FILES f
                WHERE f.id = fileid)

 

NOT IN 을 사용하는 방법

DELETE FROM BLOB
	WHERE fileid NOT IN (SELECT f.id
							FROM FILES f)

 

Note

아래는 있으면 UPDATE 없으면 INSERT 하는 방법.