PHP mySQL在好友列表中显示帖子

时间:2015-01-04 20:35:16

标签: php mysql sql-server facebook

首先,我想说,我不善于解释技术问题,但我会尝试:)

我正在尝试像facebook墙那样做。我有4张桌子。

  1. 用户
  2. 用户图片
  3. 朋友列表
  4. 分享帖子
  5. 我想在他/她的主页上显示用户的朋友帖子。我搜索并找到了一些解决方案并应用于我的应用程序。但我正在尝试寻找SQL查询的替代方法。因为我使用了子查询,也许这可以不用这个。

    这是数据库:http://sqlfiddle.com/#!2/bbacd

    获取结果的SQL代码:

    SELECT DISTINCT share.*, member.*, picture.file
    FROM friend
    LEFT JOIN share ON share.wall_owner_id = friend.friend_id
    LEFT JOIN picture ON picture.member_id = share.wall_owner_id
    LEFT JOIN member ON member.member_id = share.wall_owner_id
    WHERE friend_id IN (SELECT friend_id FROM friend WHERE member_id = 'MEMBER.ID')
    OR share.writed_by_id = 'MEMBER.ID'
    

    MEMBER.ID =登录用户的ID。

    友谊设计作为交叉系统工作。 如果有人接受朋友请求(表没有添加到sqlfiddle),两者都是像2,8和8那样的朋友写入数据库。这样做的好方法吗?

    非常感谢。

    友好。

1 个答案:

答案 0 :(得分:0)

如果没有额外的加入,你绝对可以做到这一点。仍然不确定我是否正确的要求。如果你想看到他的朋友或他在任何一面墙上发布的所有内容,这种查询应该有效。基本上,您只需选择那些以MEMBER.ID为朋友或自己为MEMBER.ID的人。

SELECT DISTINCT share.share_id, share.status_text
FROM friend
JOIN share ON share.writed_by_id = friend.member_id
JOIN picture ON picture.member_id = share.wall_owner_id
WHERE friend.friend_id = 2 OR friend.member_id = 2