我有一个多对多表来跟踪友谊。
我需要知道两个 friend 互相认可。
例如,当一个人要求成为 friend 时,他们的 id 被放在 self_uuid 中,而 friend 在 friend_uuid 中。当 friend 批准请求时,同样的事情会发生,只是相反。
如何找到所有相互认可的人? 我如何找到所有没有相互认可的人?
最佳答案
相互认可:
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
关于mysql - 与 friend 的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18451353/