0

私は、人々が簡単に友達を追加、削除し、ログインしているかどうか現在のIPを尋ねることができるサーバーに取り組んでいます.

ユーザー名を含む最初のテーブル、アドレスとそれらのユーザーの fk を含む別のテーブル、最後にユーザー -> 友達を含む「友達」と呼ばれる別のテーブルを持つようにデータベースを構成しました。

例えば ​​:

A、B、C はユーザーで、A は C と友達で、B は C と友達ですが、C は B と友達ではありません。

Friend table

user friend
 A      C
 C      A
 B      C

Bは友達のIPが欲しい. C が B とも友達であるかどうかを確認できる SQL クエリを作成するにはどうすればよいですか?

4

1 に答える 1

1

私があなたの問題を理解したら、あなたの友達が相互に関係しているかどうかを確認する必要があります. 左外部結合で実行できます

select
    t1.*,
    case when t2.user is not null then 1 else 0 end is_mutual
from test as t1
    left outer join test as t2 on t2.user = t1.friend and t2.friend = t1.user

SQL フィドルの例

于 2013-08-02T07:49:26.097 に答える