テーブル mysql テーブル 'friends' で一方向の関係を見つけようとしています
Name Friend
John Mary
Krish Paula
Debbie John
Paula Krish
Mary John
ペア (B - A) が見つからないすべてのペア (A - B) をリストしたい。
例: (John - Debbie) が存在しないため、クエリは行 4 (Debbie - John) を選択する必要があります。
Select f1.* from Friends as f1
left join Friends as f2 on f1.Name = f2.Friend and f1.Friend = f2.Name
where f2.Name is null
maximum() と least()も使用できます
Select
greatest(Name,Friend),least(Name,Friend)
from Friends
group by greatest(Name,Friend),least(Name,Friend)
having count(1)=1
あなたの問題を解決するのはクエリです。
select * from friends where name not in (select a.name from friends a, friends b where a.friend=b.name and a.name=b.friend);
Select Name, Friend from Friends as f1
left join Friends as f2 on f1.Name = f2.Friend AND f1.Friend = f2.Name