我想在我的应用程序中实现以下系统,类似于以下系统的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个人,他们都在帖子表中有一些帖子,我想写一个查询命令来返回我关注的用户帖子...如果你能帮助我,我将非常非常感谢...谢谢
答案 0 :(得分:0)
这将返回所有关注用户的所有帖子
select *
from posts
where user_id in(
select distinct following_user_id
from follow_table
where user_id=myid)
此处myid应选择userid
答案 1 :(得分:0)
在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
^这将返回海报名称,帖子本身和关注者姓名。如果这不是您所需要的,那么请澄清您需要更清楚的内容。