Postgresql-如何根据另一个查询的结果选择结果

Postgresql-如何根据另一个查询的结果选择结果,sql,Sql,我在一个服务器上工作,在这个服务器上,人们可以轻松地添加、删除好友,并在登录后请求他们当前的IP地址 我构建了我的数据库,第一个表包含用户名,另一个表包含地址+这些用户的fk,最后一个表名为“friends”,其中包含user->friend 例如: A、 B,C是用户,A和C是朋友,反之,B和C是朋友,但C和B不是朋友 Friend table user friend A C C A B C B想要朋友。如何编写一个sql查询,以检查C是否与B也是朋友?

我在一个服务器上工作,在这个服务器上,人们可以轻松地添加、删除好友,并在登录后请求他们当前的IP地址

我构建了我的数据库,第一个表包含用户名,另一个表包含地址+这些用户的fk,最后一个表名为“friends”,其中包含user->friend

例如:

A、 B,C是用户,A和C是朋友,反之,B和C是朋友,但C和B不是朋友

Friend table

user friend
 A      C
 C      A
 B      C

B想要朋友。如何编写一个sql查询,以检查C是否与B也是朋友?

如果我理解您的问题,您必须检查您的朋友是否是相互的。它可以用


我不明白这个问题<代码>选择count(*)from friend where user='c'and friend='b'?如果b是c的朋友,您需要选择朋友的ip还是检查c是否也是b的朋友?我需要b朋友的ip列表。所有朋友都需要将b交回朋友。谢谢您的帮助!
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