2016-05-16 5 views

答えて

14

理由このdoesnのをして、更新のターゲット表 'cancome' を指定することはできませんMySQLは、サブクエリ内で更新している(参照できる)テーブルを参照することを許可していません。

これは、FROMのテーブル自体の代わりにクエリを使用することで解決できます。これは、更新するテーブルの値を参照するのではなく、要求されたテーブルの値をコピーするという効果があります。

ので効果的にこれ、でもカウンター直感的な場合、動作します:

DELETE FROM cancome WHERE user_id IN 
(SELECT user_id FROM (SELECT * FROM cancome) AS cancomesub 
GROUP BY user_id HAVING COUNT(user_id)>3) 
limit 3 
+0

私はあなたが返事したこのコードをしようとすると、私はこのメッセージ を得る「[のErr] 1248 - すべての派生テーブルは、独自の別名を持っている必要があります " –

+0

あなたの仕事に感謝します –

+1

あなたは正しい、それは直感的で直観的で、あなたも正しいです、それは魅力のように機能しました。 :-) – fool4jesus

関連する問題