我正在一个服务器上工作,人们可以轻松添加,删除朋友,并在他们登录时询问他们当前的ips。
我将我的数据库构建为包含用户名的第一个表,另一个包含这些用户的地址+ fk,另一个包含用户的“朋友” - >朋友。
例如:
A,B,C是用户,A是C,另一种方式,B是C,但C没有B。
Friend table
user friend
A C
C A
B C
B想要朋友ips。如何编写一个sql查询,能够检查C是否也与B结合?
答案 0 :(得分:1)
如果我理解你的问题,你必须检查你的朋友是否相互。可以使用left outer join
执行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