SQLite:删除另一个表中指定的表中的所有记录

时间:2015-04-20 09:48:26

标签: sqlite sql-delete

拥有这样的表格

mytab       deltab
---------   --------
id | name   id | name
 1 | Ann     2 | Bob
 2 | Bob     3 | Cindy
 3 | Cindy
 4 | Dave

我想执行删除 deltab 中指定的 mytab 中所有记录的查询,因此只有Ann和Dave会留在mytab中。

虽然有MySQL multiple-table delete syntax,但SQLite delete syntax中似乎没有这样的内容。

我正在考虑使用select-stmt的REPLACE语法,并在DELETE查询之后标记要删除的行(比如将这些名称设置为NULL)。我想知道是否有更有效的方法?

2 个答案:

答案 0 :(得分:3)

尝试此查询

Delete from mytab where id in (select id from deltab);

答案 1 :(得分:1)

试试这个:

DELETE FROM mytab       
WHERE EXISTS (SELECT *
              FROM deltab
              WHERE deltab.ID = mytab.ID)
相关问题