Php 复杂的Mysql查询以组合3个表数据?
我有一个存储追随者的表,还有一个存储友谊的表 现在我有了存储流数据的第三个表 这是一个社交网络,有很多原因,所以我不希望有一张关注者和朋友表(指facebook订阅/朋友) 有人能告诉我如何查询streams表来选择朋友和追随者的活动吗 非常感谢您的帮助,谢谢 这里是一个简单的数据库方案,它不是真的像这样,但几乎Php 复杂的Mysql查询以组合3个表数据?,php,mysql,Php,Mysql,我有一个存储追随者的表,还有一个存储友谊的表 现在我有了存储流数据的第三个表 这是一个社交网络,有很多原因,所以我不希望有一张关注者和朋友表(指facebook订阅/朋友) 有人能告诉我如何查询streams表来选择朋友和追随者的活动吗 非常感谢您的帮助,谢谢 这里是一个简单的数据库方案,它不是真的像这样,但几乎 好的,这是数据库表模式 追随者表。 行ID 用户ID 以下是用户ID 朋友桌 行ID 用户ID 朋友身份证 流表 行ID 用户ID 目录号 时间 键入您要查找的内容可能最好作为两个不同
好的,这是数据库表模式 追随者表。 行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能否说明它将如何返回我的数据?按顺序?我的意思是先发朋友的帖子,然后再发用户的帖子?我不确定你想在这里做什么样的排序,或者分组。老实说,如果你要先按朋友或追随者对结果进行分组,然后再按其他排序。。那你真的要做两次手术,而不是一次。我更新了我的答案。哇,真是合作的人,让我试试,谢谢你帮我:)