본문 바로가기
SQL

MSSQL Select문만들어서 Delete하기

by 유반짝 2021. 3. 21.

MSSQL은 조건이 1개이면 WHERE IN이나 NOT IN을 쓰면 되는데

조건을 2개이상 걸고 싶으면 EXISTS를 사용해야해서 쿼리를 새로 만들었다

나는 이 방법으로 성공했는데 좋은 방법인지는 잘 모르겠다.

프로그래밍 할때는 데이터 효율성과 스피드도 생각해야하는데 초짜개발자인 나는 잘 모르겠....

 

1. 원하는 SELECT 문을 만든다

예) 테이블1에서 테이블2에 있는 ID와 SEQ가 없는 데이터 골라오기

SELECT * 
FROM [table1] A
WHERE NOT EXISTS (
	SELECT B.ID, B.Seq 
	FROM [table2] B 
    WHERE B.ID = A.ID AND B.Seq= A.Seq)

2. DELETE문과 합친다

DELETE FROM [table1]

3. 결과

DELETE FROM [table1]
--FROM
--(
--SELECT * 
FROM [table1] A
WHERE NOT EXISTS (
	SELECT B.ID, B.Seq 
	FROM [table2] B 
    WHERE B.ID = A.ID AND B.Seq= A.Seq)