我有一张桌子,我存放了粉丝,我有另一张桌子,我存放着友谊 现在我有第三个存储流数据的表。
它是一个社交网络,有很多原因所以我不希望有一个关注者表和一个表。友谊(意味着facebook订阅/朋友)
有人可以提出一种方法,我应该如何查询流表以选择朋友和朋友的活动。以下?
非常感谢任何帮助,谢谢
这是一个简单的数据库方案,它不是真的像这样,但差不多!
好的,这里是数据库表架构,
粉丝表。 ROW_ID 用户身份 Following_User_ID
朋友表 ROW_ID 用户身份 Friend_ID
流表 ROW_ID 用户身份 Contents_ID 时间 型
答案 0 :(得分:1)
你在寻找什么可能最好是作为两个不同的结果集......或两者结合。
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
这将按时间顺序返回数据,降序。