delete selectテーブル

399 ワード

テーブルtb 1のデータをクリーンアップし、nameと同じ項目は1つのみ保持する(以下、id値が最大、すなわち最新の1つのみ保持する)
delete from tb1 where id in (select max(id) from tb1 group by name);

このコードはmysqlでエラーが発生します.条件として開いているテーブルを変更できないことを意味します.解決方法:テンポラリ・テーブルの作成
create table tmp as select max(id) as col1 from tb1 group by name;
delete from tb1 where id not in (select col1 from tmp); 
drop table tmp;