2016-12-01 127 views
0

後我有一個表中刪除:的MySQL從組由第二個元素

ID  Friend 
John Rita 
John Jack 
Jack Rita 
John Tom 
Rita John 

我想編寫一個查詢,我刪除所有ID的誰擁有超過2元。換句話說,我保留每個ID最多2 friends

我已經嘗試過group by或類似的事情,但我現在不知道如何刪除。

的結果必然是:

ID Friend 
John Rita 
John Jack 
Jack Rita 
Rita John 

回答

2

一種方式是在分組表中可以加入和刪除所有記錄中,其中加入不能成立

delete t1 
from your_table t1 
left join 
(
    select id, min(friend) as f1, max(friend) as f2 
    from your_table 
    group by id 
) t2 on t1.id = t2.id 
    and t1.friend in (t2.f1, t2.f2) 
where t2.id is null 

內選擇變2周的朋友每個ID。

+0

如果我們必須保持5個朋友? – Bigjo

+0

然後你必須使用不同的解決方案。但那不是問題。 –

相關問題