Mysql - 删除第二个条目

时间:2012-05-16 11:02:11

标签: mysql

我们有一个mysql数据库表,其中包含一些需要删除的错误条目。帐户表包含以下字段:id,code,user_id

基本上,每个用户在每个帐户的帐户表中只应有一条记录。但是,目前,每个用户在帐户表中有两条记录,其中代码等于1000。

对于帐户表中的每条记录,我需要删除每个用户代码= 1000的第二行。

以下查询为我提供了代码= 1000的所有记录。它还包含对account_detail表的计数,以确认第二个错误条目在account_detail表中不包含任何子记录,并且已经确认为正确

SELECT a.*, COUNT(ad.id)
FROM account a
LEFT JOIN account_detail ad on a.id = ad.account_id
WHERE a.code = 1000
GROUP by a.id
ORDER BY a.user_id, a.id

所以,现在我基本上需要一个查询来删除帐户表中每个user_id的第二个错误条目,其中code = 1000

1 个答案:

答案 0 :(得分:0)

DELETE greater
FROM   account AS lower JOIN account AS greater
    ON lower.code    = greater.code
   AND lower.user_id = greater.user_id
   AND lower.id      < greater.id
WHERE  lower.code    = 1000