いくつかのエンティティによるユーザー フィードバックと評価を含むフィードバック テーブルがあります。複数のユーザーが同じエンティティに望ましくない投票を行い、不具合によりシステムに侵入した場合があります。
テーブル スキーマは次のようになります。
qa_id,int(10) //id of the entity
score,smallint(1)
user_id,int(3)
feed_time,datetime
次のクエリを使用して、重複するエントリの 1 つを削除しようとしました (幸いなことに、追加のフィードバックは 1 つだけです)。
delete from feedback where md5(qa_id+feed_time) in
(
select md5(qa_id+feed_time)from feedback fb
group by fb.qa_id
having count(fb.qa_id) > 1
order by fb.qa_id
desc
)
次のように言って失敗します:
Error Code : 1093
You can't specify target table 'feedback' for update in FROM clause
(0 ms taken)
同じテーブルから選択して削除することはできません(つまり、サブクエリに表示される場合)。私はデータベースの専門知識があまりなく、同じことをするためにプログラミング言語を使用することは許可されていません。:(
クエリのみでこれを行う方法について何か提案はありますか?