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

PHP mySQL Showing Posts in Friend List

首先,我想说的是,我不太擅长解释技术问题,但我会尽力:)

我正在尝试做类似 facebook 墙的事情。我有 4 张桌子。

  1. 用户
  2. 用户图片
  3. 好友列表
  4. 分享帖子

我想在 his/her 主页上显示用户朋友的帖子。我搜索并找到了一些解决方案并应用于我的应用程序。但我正在尝试为 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、2。这样做是好方法吗?

非常感谢。

友好。

没有这个额外的加入你绝对可以做到这一点。仍然不确定我是否满足要求。如果您想查看他的朋友或他在任何墙上张贴的所有内容,这种查询应该有效。基本上,您只是 select 那些以 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