繁体   English   中英

查询架构以获取来自某人的用户的帖子

[英]query schema to get posts from users that followed by someone

我想在我的应用程序中实现跟踪系统,例如Twitter类型的跟踪系统,

我有一个表帖子 ,其中存储了用户的所有帖子,此表的结构如下:

id | user_id | 标题| 描述| image_addr | 日期

这是我的table_users结构:

id | 电邮| 名称| 密码 reg_date

这是我的follow_table结构:

user_id | following_user_id

在关注表中,我将存储哪个用户关注谁的数据,例如,如果user_id 1正在关注userid 10,那么我会将此信息存储在此表中

我不完全知道我的MySQL数据库结构是否正常,或者无法对查询进行最佳优化,但是如果您有任何建议,我会尝试以一种很好的方式进行,我将很高兴听到

但是,现在这是我的主要问题,我该如何编写查询以获取该用户关注的用户的帖子

例如我跟随10个人,并且他们在posts表中都有一些帖子,我想编写一个查询命令以返回我关注的用户帖子...如果您能帮助我,我将非常非常感谢...谢谢

这将返回您所有关注的用户的所有帖子

select * 
from posts 
where user_id in(
select distinct following_user_id 
from follow_table 
where user_id=myid)

在这里myid应该被选择为userid

我应该如何编写查询以获取该用户关注的用户的帖子

您所需要做的就是以以下方式联接表

SELECT a.post
 FROM posts a
  JOIN users b
    ON (a.id = b.id) -- join key
  JOIN follow_users c
    ON (a.user_id = c.follow_user_id) -- join key
WHERE a.id   = <required id to filter the rows> -- filter criteria

确保为联接键和过滤条件创建适当的索引

在posts列中,ID是身份列还是等于table_users中的ID? 如果与table_users中的id相同,则使用此查询SELECT B.Name as PosterName,A.Description as Post,X.Name as FollowerName FROM posts A INNER JOIN TABLE_Users B ON A.ID = B.ID INNER JOIN follow_table C ON C.user_id = A.user_ID INNER JOIN Table_Users X on X.ID = A.following_user_id
^这将返回张贴者名称,帖子本身和关注者名称。 如果这不是您所需要的,那么请澄清您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM