Php 扩展查询语句以包括以下用户
我有一个查询,我正在从数据库中获取帖子。我有一个3表连接来获取帖子、个人资料图片和用户名。下面是当前查询Php 扩展查询语句以包括以下用户,php,mysql,sql,Php,Mysql,Sql,我有一个查询,我正在从数据库中获取帖子。我有一个3表连接来获取帖子、个人资料图片和用户名。下面是当前查询 SELECT Posts.*, Profiles.ProfilePhoto, Users.Name, Users.Username FROM ((Posts INNER JOIN Profiles ON Posts.UserID = Profiles.UserID) INNER JOIN Users ON Posts.UserID = Users.ID) WHERE Posts.U
SELECT Posts.*, Profiles.ProfilePhoto, Users.Name, Users.Username
FROM ((Posts
INNER JOIN Profiles ON Posts.UserID = Profiles.UserID)
INNER JOIN Users ON Posts.UserID = Users.ID)
WHERE Posts.UserID = ?
ORDER BY Posts.CreateDate DESC
现在,我正在从用户的帖子中获取数据(其中posts.userID=?)。但是我想扩展这个查询,以便从用户那里获得他/她关注的帖子
这需要我添加一些类似于另一个内部连接的东西,比如
INNER JOIN Follow ON Posts.UserID = Follow.Followed (WHERE Follow.Follower = ?) // ? being $userID;
但这是行不通的,因为不能将WHERE语句抛出到内部联接的末尾。因此,我想知道将其添加到当前查询中最有效的方法是什么?如果使用左连接而不是内部连接,它可能会起作用 您的左连接将类似于
left join follow
on posts.userid=follow.follwed
and follow.follower=?
不过要小心,因为当您添加额外的连接时,它可能会给您额外的行(取决于您从follow获得的行数)
如果看不到图表,很难说清楚
另一种方法可能是这样的
WHERE (posts.userid=?
OR posts.userid in (select followed from follow
where follower=?))
专注于找到一种方法,然后找出如何使其更有效。显示目标用户ID所遵循的用户帖子的行,应该在
Profiles.ProfilePhoto,users.Name,users.Username
列中显示什么?目标用户ID的个人资料/用户/用户名或发布帖子的用户?@kc2018 exactlyPerfect!非常感谢。我总是忘了过去的事