2016-12-01 12 views
0

後でグループから削除:mysqlのは、私がテーブルを持っている第二の要素

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

は私が2つ以上の要素を持っているすべてのID年代を削除するクエリを書きたいです。言い換えれば、私はそれぞれ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

次に、別のソリューションを使用する必要があります。しかしそれは問題ではありませんでした。 –

関連する問題