エンティティ間の関係を記述する Postgres テーブルがあります。このテーブルは、変更できないプロセスによって入力されます。これはそのテーブルの例です:
+-----+-----+
| e1  | e2  |
|-----+-----|
|  A  |  B  |
|  C  |  D  |
|  D  |  C  |
| ... | ... |
+-----+-----+
テーブルから不要なリレーションシップをすべて削除する SQL クエリを作成したいと考えてい[D, C]ます[C, D]。
自己結合を使用して削除するクエリがありますが、これにより関係に関係するすべてが削除されます。
DELETE FROM foo USING foo b WHERE foo.e2 = b.e1 AND foo.e1 = b.e2;
結果:
+-----+-----+
| e1  | e2  |
|-----+-----|
|  A  |  B  |
| ... | ... |
+-----+-----+
ただし、関係の 1 つを残すクエリが必要です。どちらの関係が残っているか、[C, D]または[D, C]両方が残っているかは問題ではありません。
ここには簡単な解決策があるように感じますが、それは私を逃れています。