Mysql 使用子查询从查询中删除不起作用

Mysql 使用子查询从查询中删除不起作用,mysql,Mysql,我想删除用户名相同的重复条目,因为我错误地插入了一些数据两次,并且无法使用unique字段 我首先用Select查询选择了那些帐户,以确保我确实得到了我想要删除的正确行,这很好。现在我想删除他们,但我得到了一个错误,我不知道为什么。以下是我的查询和错误: 查询: 错误: 您可以通过使用联接来修复此问题: 这假设在送礼时没有重复的ID。这有效了,谢谢。一旦我被允许: DELETE FROM Gifting WHERE idGifting NOT IN (SELECT MIN(idGifting)

我想删除用户名相同的重复条目,因为我错误地插入了一些数据两次,并且无法使用unique字段

我首先用Select查询选择了那些帐户,以确保我确实得到了我想要删除的正确行,这很好。现在我想删除他们,但我得到了一个错误,我不知道为什么。以下是我的查询和错误:

查询:

错误:


您可以通过使用联接来修复此问题:


这假设在送礼时没有重复的ID。

这有效了,谢谢。一旦我被允许:
DELETE FROM Gifting
WHERE idGifting NOT IN 
(SELECT MIN(idGifting) FROM Gifting GROUP BY username)
#1093 - You can't specify target table 'Gifting' for update in FROM clause
DELETE g
    FROM Gifting g LEFT JOIN
         (SELECT MIN(idGifting) as minid
          FROM Gifting
          GROUP BY username
         ) gid
         ON g.id = gid.minid
    WHERE gid.minid IS NULL;