如何检查用户是否跟随用户列表中的其他用户?

问题描述:

我正在用PHP创建一个关注系统,用户可以关注/取消关注其他用户。至此,当用户跟随​​其他用户,都存储在MYSQL数据库“跟随”表的用户ID,如何检查用户是否跟随用户列表中的其他用户?

u_id | f_id 
=========== 
1 | 2 
1 | 3 
1 | 5 

u_id如下f_id

现在,当u_id 1执行搜索在网站上,所有匹配的搜索查询的用户呈现,每一个都具有按钮,这样u_id 1可以跟随他们,但也有可能是已经后跟u_id 1.如何实现这样这些用户已经按照一些用户通过u_id 1没有那个按钮?

一种方法是在呈现搜索结果之前检查每个结果,如果他们后面跟着u_id 1,但我想这会很慢。

有没有什么办法让我可以在一个MySQL查询做到这一点?

+0

'从[用户]选择U_ID其中U_ID不是(从后续选择的f_id其中U_ID = ' –

当U_ID = 1进行网站上的搜索

,所有匹配的搜索查询的用户都

看起来你有一些类型的查询返回user_id,并建议用户f_id跟随。让假设是一个表suggestion

SELECT s.f_id, 
     CASE 
      WHEN f.id IS NULL THEN 'ON' 
      ELSE 'OFF' 
     END as ButtonStatus 
FROM [suggestion] s 
LEFT JOIN [follow] f 
     ON s.user_id = f.u_id 
     AND s.f_id = f.f_id 
WHERE 
    s.user_id = @user_id // Variable from your UI.