0

我有一个多对多的表来记录友谊。

我需要知道两个朋友互相认可。

例如,当一个人要求成为朋友时,他们的 id 被放入 self_uuid 中,而朋友则被放入friend_uuid 中。当朋友批准请求时,同样的事情也会发生,反之亦然。

在此处输入图像描述

如何找到所有相互认可的人?我如何找到所有没有相互认可的人?

4

1 回答 1

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
于 2013-08-26T19:17:02.517 回答