有这样的桌子

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替换语法,并在之后的DELETE查询中标记将被删除的行(例如将这些名称设置为NULL)。我想知道是否有更有效的方法?

最佳答案

试试这个:

DELETE FROM mytab
WHERE EXISTS (SELECT *
              FROM deltab
              WHERE deltab.ID = mytab.ID)

10-08 07:22