如何检查用户是否跟随用户列表中的其他用户?
问题描述:
我正在用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查询做到这一点?
答
当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.
'从[用户]选择U_ID其中U_ID不是(从后续选择的f_id其中U_ID =' –