我正在尝试开发一个功能,它可以显示朋友的朋友,以及我与这些用户有多少共同的朋友。到目前为止,我已经能够单独执行这些功能,但不能一起执行。
这是我使用的名为userfriends的主要视图。其中 user1 是第一个用户,user2 是朋友。
这是我开发的用于查看两个用户之间的共同朋友的功能
SELECT id FROM users
WHERE id IN (
SELECT user2 FROM userfriends WHERE user1 = me
) AND id IN (
SELECT user2 FROM userfriends WHERE user1 = second
)
Users 是一个主表,它可以将在 userfriends 表中找到的用户 id 链接到有关用户的信息。Me 和 second 是存储过程中的变量,用于模拟搜索第一个和第二个用户。此功能按计划工作。
我的第二个功能是查看所有与我的朋友成为朋友的用户,但不是与我成为朋友的用户。
SELECT user2 AS id
FROM userfriends
WHERE user1 IN (
#Selects my friends
SELECT user2 FROM userfriends
WHERE user1 = me
)
AND user2 <> me #Makes sure is not me
AND user2 NOT IN ( #Makes sure not already friend
SELECT user2 FROM userfriends
WHERE user1 = me
)
同样,所有的计划工作和我都代表用户 ID。这将返回我所有朋友的列表。
我希望能够获得的不是共同用户列表,或者我的朋友朋友列表是:
一张表,其中包含我的朋友朋友用户 ID 以及我和该用户共享的共同朋友的数量。等:用户:1,friends_in_common:103。如果我不够清楚,请询问,我会尝试使其更清楚。这两个功能自己做,但我只是不知道如何将它合并在一起。