从朋友列表中获取用户并按照列表进行操作

时间:2015-04-28 07:17:22

标签: php mysql

我正在社交网站上工作。 我有三个表,一个是用户表,用于存储用户详细信息,另一个表是跟随表,用于跟随列表。  在此表中,我存储了user_id和follower_id。 第三个表是user_friends,我正在存储user_id和friend_userid。 我想从朋友列表中搜索用户并按照列表进行操作。为此,我写了这样的查询: -

select f.follower_id,uf.friend_userid,u.user_id,u.first_name,u.last_name from tbl_user u 
LEFT JOIN tbl_userfriends uf ON uf.friend_userid = u.user_id 
LEFT JOIN tbl_follow f ON f.follower_id = u.user_id 
where uf.friend_userid != '11' 
AND u.first_name LIKE '%a%'

此查询只返回那些不返回关注用户的朋友。

任何帮助将不胜感激。在此先感谢。

2 个答案:

答案 0 :(得分:0)

您加入tbl_follow跟随者ID等于用户ID。我怀疑这可能不对。

如果您还没有用户名,则需要在关注者表中加入用户ID密钥才能加入,然后您可以将联接更改为;

LEFT JOIN tbl_follow f ON f.userid = u.user_id 

答案 1 :(得分:0)

我通过使用以下查询完成此操作: -

从tbl_user中选择u.user_id,u.first_name,u.last_name u LEFT JOIN tbl_userfriends uf ON uf.friend_userid = u.user_id LEFT JOIN tbl_follow f1 ON f1.follower_id = u.user_id LEFT JOIN tbl_follow f2 ON f2.user_id = u.user_id其中(uf.user_id = '11'或f1.user_id = '11'或f2.follower_id = '11')AND(u.first_name LIKE'%s%'或u.last_name LIKE'%s% ')和u.status ='0'组由u.first_name 此查询返回给我的所有用户,他们是我的粉丝,朋友以及我关注的用户。