MySQL:查找重复/冲突的行

时间:2017-05-07 05:06:06

标签: mysql sql database

嗯,我知道关于这个查询已经有很多问题,但是没有问题可以解决我的问题。

我是下表

id      name        link        year
1        t1           x1        2013
2        t5           x2        1990
3        t3           x1        2013
4        t2           x9        2011

现在我希望将重复记录与两列结合起来 结果应该是

id      name        link        year
1        t1           x1        2013
3        t3           x1        2013

这是我到目前为止所尝试的内容

SELECT * FROM table GROUP BY `link`, `year` HAVING COUNT(*) > 1

并且它只返回一行(第二行),因此,您的帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

您可以使用聚合找到有多行的链接和年份组合。您必须将其与原始表一起加入以获取这些链接和年份的所有行。

select *
from table t
join (
    select link, year
    from table
    group by link, year
    having count(*) > 1
    ) t2 using (link, year);