SQL newbie here:我有一个名为work1的临时表,其中包含以下字段:
company3,dept。 (以及其他不属于问题的字段)
我有一个经理人关联表'deptmgrassoc',其中包含以下字段,用于标识部门和部门的组合。公司经理结束了:
company3,dept,mgrid。
假设work1有以下记录:
company3,dept
1,a
1,b
1,c
2,a
2,b
2,c
如何从work3中删除公司3&部门组合不在公司和公司名单中。汤姆关联表中的部门组合,他的记录是:
company3,dept,mgrid
1,a,tom
1,b,tom
2,a,tom
2,b,tom
sql应该删除带有1,c&的记录。 2,c因为这些组合不在关联表中。
答案 0 :(得分:1)
not exists
运算符应该可以解决问题:
DELETE FROM work1 w
WHERE NOT EXISTS (SELECT *
FROM deptmgrassoc d
WHERE w.company3 = d.company3 AND
w.dept = d.dept)