DELETE FROM `tblinvoices` WHERE userid NOT IN (SELECT f.id FROM `tblclients` f);
我正在运行上述查询以删除客户端池中不存在用户 ID 的发票。
理论上,这个查询的每个部分都是单独工作的,但是当组合“NOT IN”时 - 不起作用。
我不知道为什么会这样,我已经对其进行了很多测试,但根本无法使其正常工作。
从 tblinvoices 运行以下查询时:
SELECT * FROM `tblinvoices` WHERE userid = 73;
查询正确返回,并返回该用户的发票:
SELECT f.id FROM `tblclients` f;
它自己也运行得很好,从 tblclients 返回所有用户标识。
我正在使用 SELECT 来预览更改
模拟查询我可以看到这个返回:
SQL query:
DELETE FROM `tblinvoices` WHERE userid NOT IN (SELECT f.id FROM `tblclients` f)
Matched rows: 0