MySQLで、副問い合わせで検索した複数のカラムの値を条件として、同じテーブルのデータを削除する

タイトルに書いたことを次のように実施しようとしてエラーとなった。

delete from スキーマ名.テーブル名
where (カラム1,カラム2) 
IN(
SELECT カラム1 ,MAX(カラム2) as カラム2 from スキーマ名.テーブル名
where 条件カラム3=1 
and カラム1 IN (1,2,3・・・,998,999)
 group by カラム1
)

エラー内容は下記。

Error Code: 1093. You can't specify target table 'テーブル名' for update in FROM clause 0.000 sec

selectした結果を直接条件句へ渡すのではなく、一度別名(この場合tmp)テーブルを用意して、そこから取得した結果を渡すとうまくいく。

delete from スキーマ名.テーブル名
where (カラム1,カラム2) 
IN(
SELECT カラム1,カラム2 as カラム2別名 
from 
(SELECT カラム1 ,MAX(カラム2) as カラム2 from スキーマ名.テーブル名
where 条件カラム3=1 
and カラム1 IN (1,2,3・・・,998,999)
 group by カラム1) as tmp)
;