有这样的桌子
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)