0

我正在尝试在以下查询中触发...

它有什么问题吗?

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));
4

1 回答 1

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
于 2012-07-05T07:21:57.647 回答