質問を1つの文に入力できないので、例を挙げます。あなたは、データベース内の次のテーブルを持っていると言う:SQLで列のペアを選択する方法
Users(id, name)
Friends(id1, id2)
Friends(id1)
とFriends(id2)
はUsers(id)
を参照して、両方の外部キーです。一方の側のユーザーIDと他方の側のすべてのユーザーを取得するために、クエリはどのように見えますか。友人のテーブル内のデータは次のようなものになります。
id1 id2
-------
1 2
1 3
1 4
2 3
2 4
2 5
5 1
をそして私はこのような出力が欲しい:
id1 id2
-------
1 2
1 3
1 4
1 5
2 1
2 3
2 4
2 5
3 1
3 2
4 1
4 2
5 1
5 2
すべてのユーザIDが左側にすべきであり、そのユーザーIDの友人はすべてべき右にある。私はいくつかの種類のクロス製品をしなければならないと思うが、正しい出力を得ることはできない。どのようにこれを行うにはどのようなアイデア?ありがとう。 id2,id1
とid1,id2
の
フレンドシップテーブル(両側)に2つの関係レコードを作成するのが一般的です。この場合、あなたは決してそのような問題を抱えませんでした。 – zerkms
@zerkmsしたがって、テーブルは常に必要な倍の大きさになるでしょうか? – styfle
技術的には、はい、友情を探すのに効率的であるという利点があります。 – mellamokb