我有一个反馈表,其中包含根据某些实体的用户反馈和评级。在某些情况下,多个用户对同一实体进行了投票,这是不可取的,并且由于故障而进入了系统。
表模式有点像这样:
qa_id,int(10) //id of the entity
score,smallint(1)
user_id,int(3)
feed_time,datetime
我试图用这个查询删除一个重复的条目(幸运的是只有一个额外的反馈):
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)
我无法从同一个表中选择和删除(即,如果它出现在子查询中)。我在数据库方面没有太多专业知识,也不允许我使用任何编程语言来做同样的事情。:(
关于如何仅使用查询来执行此操作的任何建议?