Php 复杂的Mysql查询以组合3个表数据?

Php 复杂的Mysql查询以组合3个表数据?,php,mysql,Php,Mysql,我有一个存储追随者的表,还有一个存储友谊的表 现在我有了存储流数据的第三个表 这是一个社交网络,有很多原因,所以我不希望有一张关注者和朋友表(指facebook订阅/朋友) 有人能告诉我如何查询streams表来选择朋友和追随者的活动吗 非常感谢您的帮助,谢谢 这里是一个简单的数据库方案,它不是真的像这样,但几乎 好的,这是数据库表模式 追随者表。 行ID 用户ID 以下是用户ID 朋友桌 行ID 用户ID 朋友身份证 流表 行ID 用户ID 目录号 时间 键入您要查找的内容可能最好作为两个不同

我有一个存储追随者的表,还有一个存储友谊的表 现在我有了存储流数据的第三个表

这是一个社交网络,有很多原因,所以我不希望有一张关注者和朋友表(指facebook订阅/朋友)

有人能告诉我如何查询streams表来选择朋友和追随者的活动吗

非常感谢您的帮助,谢谢

这里是一个简单的数据库方案,它不是真的像这样,但几乎


好的,这是数据库表模式

追随者表。 行ID 用户ID 以下是用户ID

朋友桌 行ID 用户ID 朋友身份证

流表 行ID 用户ID 目录号 时间
键入

您要查找的内容可能最好作为两个不同的结果集来完成。。。或者两者的结合

Select "friend" as src, author, post from friends f inner join streams s on s.author = f.id
union
Select "follower" as src, author, post from followers f inner join streams s on s.author = f.id
这只是一些伪编码,但它应该让您了解如何继续。在不了解数据库模式的情况下,这是我所能提供的最好的数据库模式

编辑:

这可能就是你想要的

select user_id, contents_id, time from (
    select user_id, contents_id, time
    from followers f inner join stream s on s.user_id = f.user_id and f.user_id = "username"
union
    select user_id, contents_id, time
    from friends f inner join stream s on s.user_id = f.user_id and f.user_id = "username"
) order by time desc

这将按时间顺序以降序返回数据。

您可以发布您的表结构,或者一些示例数据吗。更好的是,若你们能把它作为一个好的,这里是数据库表模式,请,Followers表。Row\u ID User\u ID Following\u User\u ID Friends表Row\u ID User\u ID Friend\u ID Stream Row\u ID User\u ID Contents\u ID Time Type能否说明它将如何返回我的数据?按顺序?我的意思是先发朋友的帖子,然后再发用户的帖子?我不确定你想在这里做什么样的排序,或者分组。老实说,如果你要先按朋友或追随者对结果进行分组,然后再按其他排序。。那你真的要做两次手术,而不是一次。我更新了我的答案。哇,真是合作的人,让我试试,谢谢你帮我:)