我有一个多对多的表来记录友谊。
我需要知道两个朋友互相认可。
例如,当一个人要求成为朋友时,他们的 id 被放入 self_uuid 中,而朋友则被放入friend_uuid 中。当朋友批准请求时,同样的事情也会发生,反之亦然。
如何找到所有相互认可的人?我如何找到所有没有相互认可的人?
我有一个多对多的表来记录友谊。
我需要知道两个朋友互相认可。
例如,当一个人要求成为朋友时,他们的 id 被放入 self_uuid 中,而朋友则被放入friend_uuid 中。当朋友批准请求时,同样的事情也会发生,反之亦然。
如何找到所有相互认可的人?我如何找到所有没有相互认可的人?
相互认可:
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