我的MySQL数据库中有一个表,我需要删除重复项。
我的表看起来像这样:
unique_id value frequency value_type publication_date
1 6.5 1 2 2014-12-31
2 7.5 3 5 2014-06-04
3 6.5 1 2 2015-07-13
4 8.0 4 3 2010-12-31
除了publication_date之外,第1行和第3行是重复的。我需要删除这些重复项,但保留行的最大发布日期,所以对于这个例子,我想删除第1行并保留第3行。
到目前为止,我已经尝试了这个但是它在我的测试表上给了我太多的结果:
SELECT t.* FROM
(SELECT MAX(publication_date) AS most_recent_date
FROM table_1
GROUP BY `value`,frequency,value_type
) t1
JOIN table_1 t
ON t.publication_date = t1.most_recent_date;
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:0)
您可以使用JOIN删除重复项
delete t1 from table_1 t1
join table_1 t2 on t1.value = t2.value
and t1.frequency= t2.frequency
and t1.value_type = t2.value_type
and t1.unique_id <> t2.unique_id
and t1.publication_date < t2.publication_date ;