【问题标题】:Fetching user from friends list and follow list从好友列表和关注列表中获取用户
【发布时间】:2015-04-28 07:17:22
【问题描述】:

我正在开发社交网站。 我有三个表,一个是用户表,用于存储用户详细信息,另一个表是关注表,用于关注列表。 在此表中,我存储了 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%'

此查询仅返回好友用户,不返回关注用户。

任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 将“WHERE”更改为“AND”并将“AND”更改为“WHERE”

标签: php mysql


【解决方案1】:

您加入tbl_follow 时,追随者 ID 与用户 ID 相同。我怀疑这可能不对。

如果您还没有,则需要在关注者表中添加一个用户 ID 键才能加入,然后您可以将加入更改为;

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

【讨论】:

  • 关注者也是用户。
  • 如果我改变了这个,那么追随者的名字就不会出现在查询结果中
【解决方案2】:

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

select u.user_id,u.first_name,u.last_name from tbl_user = u.user_id where (uf.user_id = '11' OR f1.user_id = '11' OR f2.follower_id = '11') AND (u.first_name LIKE '%s%' OR u.last_name LIKE '%s% ') AND u.status = '0' group by u.first_name 此查询返回我所有的关注者、朋友和我关注的用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2014-11-15
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多