与朋友有很多很多关系

时间:2013-08-26 19:14:20

标签: mysql many-to-many

我有很多桌子跟踪友谊。

我需要知道两位朋友互相批准。

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

enter image description here

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

1 个答案:

答案 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