2017-11-13 10 views
1

SQLの初心者、ここでは異なるテーブルから2つのフィールドに一致しないレコードを削除します。 (およびnは他の分野/質問に対する)SQL文の、2つのフィールドが

私はマネージャーが終わっ部門&会社の組み合わせを識別する、次のフィールドがあるマネージャーアソシエーションテーブル「deptmgrassoc」を持つ:

company3を、部下、mgrid。

のは、WORK1は、次のレコードを持っているとしましょう:
1 B

company3、DEPT
1、
1、
2 C、
2、
2 B、
cは

company3 & deptの組み合わせが会社の一覧にないwork1からレコードを削除するには彼のレコードであるトムのための対応表での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) 
関連する問題