Query中有什么问题

时间:2012-07-05 07:08:50

标签: 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));

1 个答案:

答案 0 :(得分:5)

DELETE Syntax手册部分所述:

  

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

您可以在表格中使用DELETEjoin的多表格形式:

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