在执行下面的sql时报错
- DELETE FROM temp WHERE id IN (SELECT a.id FROM t_user t JOIN temp a ON t.email = a.email);
这种写法在sqlserver或者oracle中是支持的,但是mysql目前是不支持的,在mysql中不能同时查询一个表的数据再同时进行删除,只能用以下的办法折中
- CREATE TABLE tmp AS SELECT a.id FROM t_user t JOIN temp a ON t.email = a.email;
- DELETE FROM temp WHERE id IN (SELECT id FROM tmp);
先将查询到的数据放到一个临时表中,然后再对临时表进行查询,然后再删除目标表中满足条件的数据。
转载于:https://blog.51cto.com/sucre/629493