2011년 3월 2일 수요일

DELETE Join 문

-- 테스트 테이블 생성
CREATE TABLE dbo.TEST1 (
    DT  NVARCHAR(50),
    TP  NVARCHAR(50),
    AM  NVARCHAR(50),
    GT  NVARCHAR(50),
    WT  NVARCHAR(50)
) ON [PRIMARY]
CREATE TABLE dbo.TEST2 (
    DT  NVARCHAR(50),
    TP  NVARCHAR(50),
    AM  NVARCHAR(50)
) ON [PRIMARY]

-- 테스트 데이터 생성
INSERT INTO TEST1(DT,TP,AM,GT,WT) VALUES('A1','B1','C1','D1','E1');
INSERT INTO TEST1(DT,TP,AM,GT,WT) VALUES('A2','B2','C2','D2','E2');
INSERT INTO TEST1(DT,TP,AM,GT,WT) VALUES('A3','B3','C3','D3','E3');

INSERT INTO TEST1(DT,TP,AM,GT,WT) VALUES('A4','B4','C4','D4','E4');
INSERT INTO TEST1(DT,TP,AM,GT,WT) VALUES('A5','B5','C5','D5','E5');
INSERT INTO TEST1(DT,TP,AM,GT,WT) VALUES('A6','B6','C6','D6','E6');
INSERT INTO TEST1(DT,TP,AM,GT,WT) VALUES('A7','B7','C7','D7','E7');

INSERT INTO TEST2(DT,TP,AM) VALUES('A1','B1','C1');
INSERT INTO TEST2(DT,TP,AM) VALUES('A2','B2','C2');
INSERT INTO TEST2(DT,TP,AM) VALUES('A3','B3','C3');

INSERT INTO TEST2(DT,TP,AM) VALUES('A8','B8','C8');
INSERT INTO TEST2(DT,TP,AM) VALUES('A9','B9','C9');
INSERT INTO TEST2(DT,TP,AM) VALUES('A0','B0','C0');

  --> 중복 데이터는 노랑색밑줄 데이터

-- 중복 데이터 확인
 SELECT  B.DT, B.TP, B.AM
FROM TEST1 A , TEST2 B
WHERE A.DT = B.DT
AND A.TP = B.TP
AND A.AM = B.AM

-- 중복 데이터 삭제
DELETE TEST2
FROM TEST2 INNER JOIN TEST1
ON TEST2.DT = TEST1.DT
 AND TEST2.TP = TEST1.TP
 AND TEST2.AM = TEST1.AM

댓글 없음:

댓글 쓰기