2017-05-07 80 views
3

嗯,我知道已經有很多關於這個查詢的問題,但沒有解決我的問題。MySQL:查找重複/衝突的行

我下表

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 

它只返回一個(第二)行,所以,你的幫助將是高度讚賞。

回答

3

您可以使用具有多行的聚合來查找鏈接和年份組合。您必須將其與原始表加入才能獲取這些鏈接和年份的所有行。

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