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)
'SQL' 카테고리의 다른 글
MSSQL 0으로 나누기 오류를 NULL로 반환 (0) | 2021.09.04 |
---|---|
MSSQL 최근데이터 1개씩만 가져오기(최상위 데이터 가져오기) (0) | 2021.09.04 |
DB 복구보류중 일 경우 복구하는 방법 (0) | 2021.04.01 |
입고재고현황 frm 만들기 쿼리 (0) | 2021.03.24 |
MS-SQL 데이터베이스 다른서버로 붙여넣기 (0) | 2020.09.04 |