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 に答える