【前言】
如果多张表连查出来符合条件的单表的id后,但是通过delete in无法删除?这时我们该如何处理?
【实践】
CREATE TABLE tmp AS SELECT
e.role_id
FROM
(
SELECT a.role_id FROM sys_user_role a WHERE a.user_id NOT IN (SELECT b.user_id FROM sys_user b )
) e; --首先把查询出来的id创建一个临时表
DELETE FROM sys_role WHERE role_id IN (SELECT role_id FROM tmp); --通过临时表获取id值
DROP TABLE tmp;--删除临时表
【结论】
知道思路后,以后可以清洗线上数据。。。