我需要从一个sqlite表中删除其行ID不存在于另一个表中的行。 SELECT语句返回正确的行:
SELECT * FROM cache LEFT JOIN main ON cache.id=main.id WHERE main.id IS NULL;
DELETE FROM cache LEFT JOIN main ON cache.id=main.id WHERE main.id IS NULL;
sqlite显然不支持与delete语句的连接,您可以在
Syntax diagrams上看到。但是您应该可以使用子查询来删除它们。
即。
DELETE FROM cache WHERE id IN (SELECT cache.id FROM cache LEFT JOIN main ON cache.id=main.id WHERE main.id IS NULL);
(未测试)