Query中有什么问题

Ket*_*tan 0 mysql

我试图在下面查询...

它有什么问题吗?

delete from user_role 
WHERE user_id in (
    select u.user_id from user u, user_role ur 
    where u.USER_ID=ur.USER_ID and ur.ROLE_ID=4 and u.USER_ID not in (
        select user_id from referrers));
Run Code Online (Sandbox Code Playgroud)

egg*_*yal 5

DELETE语法手册部分所述:

目前,您无法从表中删除并从子查询中的同一表中进行选择.

您可以使用多表格形式DELETE并将表格连接在一起:

DELETE user_role
FROM   user_role
  INNER JOIN user_id   USING (USER_ID)
  LEFT  JOIN referrers USING (USER_ID)
WHERE user_role.ROLE_ID = 4 AND referrers.USER_ID IS NULL
Run Code Online (Sandbox Code Playgroud)