我有两张这样的表:
Table L
A | B
C | D
Table K
A | B
C | D
E | F
etc etc
我想在table K
中删除Table L
中存在的所有行。
然而,当我删除它时,它只会消除第一行。我希望如果插入Table L
的更多行与Table K
中的行重合,删除也会有效,这就是,不必进行“手动”删除
提前致谢
答案 0 :(得分:1)
您可以将delete与别名和存在量词一起使用来实现:
delete k
from K as k
where exists (
select * from L as l
where l.col1=k.col1 and l.col2=k.col2
)
答案 1 :(得分:0)
DELETE FROM K
WHERE ( Col1,Col2 )
NOT IN
(
SELECT k1.Col1, k1.Col2
FROM K k1
LEFT OUTER JOIN L l1
ON k1.Col1 = l1.Col1
AND k1.Col2 = l1.Col2
WHERE l1.Col1 IS NULL OR l1.Col2 IS NULL
);