我有很多桌子跟踪友谊。
我需要知道两位朋友互相批准。
例如,当一个人要求成为朋友时,他们的id会被放入self_uuid,而朋友会被放入friend_uuid。当朋友批准请求时,同样的事情发生了,反之亦然。
如何找到所有相互认可的人? 我如何找到所有没有相互认可的人?
答案 0 :(得分:3)
相互批准:
select f1.self_uuid, f1.friend_uuid
from friends f1
join friends f2 on f1.self_uuid = f2.friend_uuid and f1.friend_uuid = f2.self_uuid
未经批准的朋友请求:
select f1.self_uuid, f1.friend_uuid
from friends f1
left join friends f2 on f1.self_uuid = f2.friend_uuid and f1.friend_uuid = f2.self_uuid
where f2.self_uuid is null