删除sql中的多行

时间:2016-10-01 18:30:27

标签: sqlite

我有两张这样的表:

Table L   
 A | B  
 C | D

Table K     
 A | B   
 C | D  
 E | F
etc etc

我想在table K中删除Table L中存在的所有行。

然而,当我删除它时,它只会消除第一行。我希望如果插入Table L的更多行与Table K中的行重合,删除也会有效,这就是,不必进行“手动”删除

提前致谢

2 个答案:

答案 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
);