0

我们有一个 mysql 数据库表,其中包含一些需要删除的错误条目。account 表有以下字段: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 的第二个错误条目,其中代码 = 1000

4

1 回答 1

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
于 2012-05-16T11:04:52.480 回答