[英]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.