0
有表像这样SQLite的:删除表中的另一个表中规定的所有记录
mytab deltab
--------- --------
id | name id | name
1 | Ann 2 | Bob
2 | Bob 3 | Cindy
3 | Cindy
4 | Dave
我想执行的查询其删除MYTAB在deltab指定的所有记录,所以只有安和戴夫将留在我的选项卡中。
虽然有MySQL multiple-table delete syntax,看起来好像SQLite delete syntax没有这样的东西。
我正在考虑使用select-stmt替换语法,并在DELETE查询之后标记将被删除的行(如将这些名称设置为NULL)。我想知道是否有更有效的方法?
嗯...一个子查询,我很少使用它们,如何对他们在SQLite的速度是多少?与Lokesh的建议有什么不同吗? –
@JanTuroň: - 我不认为你会面临任何性能差异。我宁愿在IN中使用EXISTS。由于'in'最适合在有静态列表的地方通过。 EXISTS会告诉你一个查询是否返回任何结果 –
@JanTuroň: - 同样就速度而言,我发现EXISTS比IN快得多(当子查询结果非常大时) –