删除除最后一行之外的重复行

时间:2015-04-24 15:56:55

标签: php mysql database

我在MySql上有这个表:

表1

ID    CODE     USER       NUMBER     ADJUSTMENT     ADJUST_DATE 
1     abc      Frank      10245      1              2015/04/20
2     def      Jonathan   25410      0              2015/04/21
3     ghi      Karen      55214      3              2015/05/05
4     abc      Frank      10245      2              2015/04/21
5     abc      Frank      10245      4              2015/04/22

我想删除重复的数据,并按日期保留最后一个条目:

ID    CODE     USER       NUMBER     ADJUSTMENT     ADJUS_DATE 
2     def      Jonathan   25410      0              2015/04/21
3     ghi      Karen      55214      3              2015/05/05
5     abc      Frank      10245      4              2015/04/22

CODE,USER,NUMBER,ADJUSTMENT,ADJUS_DATE是' Unique'

我需要创建一个包含结果的临时表,因为我需要所有记录。

1 个答案:

答案 0 :(得分:2)

生成按列中的相似值分组的最大日期的子集,然后联接回基本集...

SELECT A.ID, A.Code, A.user, A.Number, A.Adjustment, A.Adjust_date
FROM  table1 A
INNER JOIN (SELECT Code, User, Number, max(adjust_date) mDate
            FROM table1 group by Code, User, Number) B
  on A.code = B.code 
 and A.user = B.User 
 and A.Number = B.Number 
 and A.Adjust_date = B.mdate