mysql - 与 friend 的多对多关系

标签 mysql many-to-many

我有一个多对多表来跟踪友谊。

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

例如,当一个人要求成为 friend 时,他们的 id 被放在 self_uuid 中,而 friend 在 friend_uuid 中。当 friend 批准请求时,同样的事情会发生,只是相反。

enter image description here

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

最佳答案

相互认可:

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/

相关文章:

ruby-on-rails - 将多态关联与多对多关联相结合......这个设置正确吗?

PHP/MySQL 多对多关系——下一步在这里

php - php 从 mySql 获取行从某个点降序

mysql - 如果来自另一个表,如何填充(与其他表连接)空值?

php - 保存一个 'search' 用于以后的电子邮件通知

c# - 如何使用 EF 在 MVC Code-first 中更新/创建多对多关系数据?

mysql - 将数据从 MySQL(本地)复制到 Cosmos DB

MYSQL:如何创建一个触发器来根据来自不同表的值计算字段值?

c# - 多对多在 NHibernate 中删除具有共同关联的两个 parent

android - GreenDao 是否可以只在一个方向上建立一对多关系?