2017-11-13 4 views
1

SQL 초보자 여기에 다른 테이블에서이 개 필드를 일치하지 않는 레코드를 삭제합니다. ,SQL 문이 개 필드

company3 : (그리고 질문에 N/A 다른 필드는)

나는 관리자 협회 테이블 관리자가 이상 부서의 어떤 조합 & 회사의 식별 다음과 같은 필드가 'deptmgrassoc'을 가지고 부서, mgrid.
c를,
2 B,,
2 C,
1 B,, 부서
1,

company3
2
1 :

은의이 근무처는 다음과 같은 레코드가 있다고 가정 해 봅시다

company3 & dept 조합이 회사 목록에없는 work1에서 레코드를 삭제하는 방법그 기록은 톰 협회 테이블 8,DEPT 조합 :

company3, DEPT는 톰
1, B, 톰
(2), 톰
2, B
(1),을 MGRID tom

sql은 연관 테이블에없는 조합이므로 1, c & 2, c가있는 레코드를 삭제해야합니다.

답변

1

not exists 운영자는 트릭을 수행해야합니다

DELETE FROM work1 w 
WHERE NOT EXISTS (SELECT * 
        FROM deptmgrassoc d 
        WHERE w.company3 = d.company3 AND 
          w.dept = d.dept)