MySQL SubQuery似乎不起作用

时间:2014-06-01 15:58:41

标签: mysql sql

我有一个名为&#34的数据库表;已婚#34;由多个字段组成,两个字段特别构成表的主键。那两个字段名称是; "数字","日期"。

有许多重复的记录共享相同的"数字"但是有不同的日期"相关联。

我需要删除每对中的记录(行),其中"数字"两者之间很常见,但有较旧的" date"相关。但是查询中出现了问题。

delete number from married where number IN(select number from married)

and date <ANY( select date from married)

1 个答案:

答案 0 :(得分:1)

您想删除每个号码的最近日期以外的所有日期。在MySQL中,您只能使用在查询的其余部分中发生删除的表。幸运的是,您通常可以使用join解决此问题。我想这就是你想要的:

delete m
    from married m join
         (select number, max(date) as maxd
          from married
          group by number
         ) tokeep
         on m.number = tokeep.number and m.date < tokeep.maxd;