Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询架构以从跟随某人的用户处获取帖子_Php_Mysql_Sql - Fatal编程技术网

Php 查询架构以从跟随某人的用户处获取帖子

Php 查询架构以从跟随某人的用户处获取帖子,php,mysql,sql,Php,Mysql,Sql,我想在我的应用程序中实现以下系统,类似于twitter类型的以下系统 我有一个posts表,其中存储了用户的所有posts,该表的结构如下: id |用户id |标题|描述|图像|地址|日期 这是我的表格用户结构: id |电子邮件|姓名|密码|注册日期 这是我的下表结构: 用户标识|跟随用户标识 在下表中,我将存储哪个用户跟随谁的数据, 例如,如果用户_id 1跟随用户id 10,那么我将在该表中存储此信息 我不知道我的MySQL数据库结构是否可以为查询获得最佳优化,但我试图以一种好的方式进行

我想在我的应用程序中实现以下系统,类似于twitter类型的以下系统

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

id |用户id |标题|描述|图像|地址|日期

这是我的表格用户结构:

id |电子邮件|姓名|密码|注册日期

这是我的下表结构:

用户标识|跟随用户标识

在下表中,我将存储哪个用户跟随谁的数据, 例如,如果用户_id 1跟随用户id 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 * 
from posts 
where user_id in(
select distinct following_user_id 
from follow_table 
where user_id=myid)
这里myid应该是用户id

我应该如何编写查询以获取用户正在跟踪的用户的帖子

您只需按以下方式联接表:

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
确保为联接键和筛选条件创建了适当的索引

我应该如何编写查询以获取用户正在跟踪的用户的帖子

您只需按以下方式联接表:

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是标识列还是等于表\u users中的ID?如果它与表_users中的id相同,则使用此查询 选择B.名称作为PosterName,A.描述作为Post,X.名称作为FollowerName 发帖 内部联接表\u用户B 在A.ID=B.ID上 表C中的内部联接 在C.user\u id=A.user\u id上 内部联接表 在X.ID=A.following\u user\u ID上
^这将返回海报名称、帖子本身和关注者名称。如果这不是您需要的,那么请更清楚地说明您需要什么。

在posts列中,ID是标识列还是等于表中的ID?如果它与表_users中的id相同,则使用此查询 选择B.名称作为PosterName,A.描述作为Post,X.名称作为FollowerName 发帖 内部联接表\u用户B 在A.ID=B.ID上 表C中的内部联接 在C.user\u id=A.user\u id上 内部联接表 在X.ID=A.following\u user\u ID上
^这将返回海报名称、帖子本身和关注者名称。如果这不是您需要的,那么请更清楚地说明您需要什么。

感谢您的帮助,是的,它们是相同的,posts中的userid=users中的id\u table=userid在follow table中,不要忘记添加order by date子句,这样它就不会返回相同的行。感谢您的帮助,是的,它们是相同的,posts中的userid=users中的id\u table=follow tableYw中的userid,不要忘记添加一个order by date子句,这样它就不会返回相同的行。@Payamkurehpaz不客气!如果它帮助了你,那么请将它标记为已回答,它也会帮助其他人。请过关。@Payamkurehpaz不客气!如果它帮助了你,那么请将它标记为已回答,它也会帮助其他人。请仔细检查一下。