如何创建sql for friendship relationship(mysql)?

fiei3ece  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(228)

我有一个mysql表:
朋友(id,userid,friendid)
以及一个表users(id,username),例如:

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

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

(1,2)
(2,2)

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

(3,1)

约翰要求结婚,谁不接受呢

(1,4)

有没有一种方法可以使用sql为john的朋友获取一些结果:

(1, Jerry)

在我们所有的table上

(1,2)
(2,2)
(3,1)
(1,4)
7xllpg7q

7xllpg7q1#

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 table本身将确保“友谊”是“双向的”。

相关问题