2 つのフィールド (名前、関心) を持つテーブルがあり、同じ関心を持つすべてのペアを検索し、すべての重複とミラー化されたペアを削除したいと考えています。
次の SQL ステートメントを使用して、すべてのペアを見つけて重複を削除できます。
SELECT P1.name AS name1, P2.name AS name2, P1.interest
FROM Table AS P1, Table AS P2
WHERE P1.interest = P2.interest AND P1.name <> P2.name;
しかし、ミラーリングされたペアを削除する方法がわかりません。つまり:
"wil","ben","databases"
"ben","wil","databases"
上記のステートメントを Matches というビューにしようとし、次のクエリを試みました。
SELECT * FROM Matches
WHERE name2 <> (select name1 from Matches);
ただし、ミラー化されたすべてのペアが削除されるわけではありません。