拥有这样的表格
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)。我想知道是否有更有效的方法?
答案 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)