首页 > 解决方案 > 如何为友谊关系创建sql(mysql)?

问题描述

我有一个mysql表:

朋友(ID,用户ID,朋友ID)

和一个表用户(id,用户名)例如:

(1,'John'), (2, 'Jerry'), (3, 'Larry), (4, 'Marry')

约翰和杰瑞是朋友,所以在朋友中我们有

(1,2)
(2,2)

拉里要求约翰成为约翰的朋友,但没有接受

(3,1)

约翰向玛丽求婚,玛丽不接受

(1,4)

有没有办法做一个 SQL 来为约翰的朋友们得到一些结果:

(1, Jerry)

在我们所有的表中

(1,2)
(2,2)
(3,1)
(1,4)

标签: mysql

解决方案


select u.*
from friends f1
join friends f2 on f2.user_id = f1.friend_id
join users u on u.id = f1.friend_id
where f1.user_id = 1 -- John's id

friends表与自身连接将确保“友谊”是“双向”的。


推荐阅读