SQLite:从另一个 table 中指定的 table 中删除所有记录
SQLite: delete all records from table specified in another table
有这样的表格
mytab deltab
--------- --------
id | name id | name
1 | Ann 2 | Bob
2 | Bob 3 | Cindy
3 | Cindy
4 | Dave
我想执行查询,删除 deltab 中指定的 mytab 中的所有记录,因此只剩下 Ann 和 Dave在我的标签中。
虽然有MySQL multiple-table delete syntax, looks like there is no such thing in SQLite delete syntax.
我正在考虑使用 select-stmt 的 REPLACE 语法,并在之后的 DELETE 查询中标记将被删除的行(比如将这些名称设置为 NULL)。请问有没有更有效的方法?
试试这个查询
Delete from mytab where id in (select id from deltab);
试试这个:
DELETE FROM mytab
WHERE EXISTS (SELECT *
FROM deltab
WHERE deltab.ID = mytab.ID)
有这样的表格
mytab deltab
--------- --------
id | name id | name
1 | Ann 2 | Bob
2 | Bob 3 | Cindy
3 | Cindy
4 | Dave
我想执行查询,删除 deltab 中指定的 mytab 中的所有记录,因此只剩下 Ann 和 Dave在我的标签中。
虽然有MySQL multiple-table delete syntax, looks like there is no such thing in SQLite delete syntax.
我正在考虑使用 select-stmt 的 REPLACE 语法,并在之后的 DELETE 查询中标记将被删除的行(比如将这些名称设置为 NULL)。请问有没有更有效的方法?
试试这个查询
Delete from mytab where id in (select id from deltab);
试试这个:
DELETE FROM mytab
WHERE EXISTS (SELECT *
FROM deltab
WHERE deltab.ID = mytab.ID)