Php 显示追随者和登录用户的帖子

Php 显示追随者和登录用户的帖子,php,mysql,Php,Mysql,我想使用一个PHP mysql查询显示被跟踪用户和登录用户的帖子 我有三张桌子: -用户(id、名称、密码) -帖子(id、正文、日期、用户id) -追随者(id、用户id、追随者id) followers.follower_id=执行以下操作的人员 followers.user_id=被跟踪的人 $\u会话['id']=已登录用户的id DB::query(' SELECT users.name, posts.body FROM users, posts, followers WHERE

我想使用一个PHP mysql查询显示被跟踪用户和登录用户的帖子

我有三张桌子:
-用户(id、名称、密码)
-帖子(id、正文、日期、用户id)
-追随者(id、用户id、追随者id)

followers.follower_id=执行以下操作的人员
followers.user_id=被跟踪的人
$\u会话['id']=已登录用户的id

DB::query('
SELECT users.name, posts.body 
FROM users, posts, followers 
WHERE posts.user_id = followers.user_id 
AND users.id = posts.user_id 
AND followers.follower_id = :userid', 
array(':userid'=>$_SESSION['id'])
);
但是查询只显示被跟踪用户的帖子,而不是登录用户的帖子。我该如何解决这个问题

我已经在posts表和users表之间创建了一个关系

CREATE TABLE `posts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `body` varchar(160) NOT NULL DEFAULT '',
  `user_id` int(11) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

您需要在
WHERE
子句中包含两个条件:帖子的创建者匹配您的
:userid
变量,或者跟随者匹配您的
:userid

请使用当前的联接语法:这使您的查询更易于阅读

您的最终查询应该是这样的(我不包括PHP部分):


哪个表跟踪登录状态?如果您希望在尽可能短的时间内找到最佳解决方案,请通过发布包含相关表和足够数量样本数据的sqlfiddle演示来提供完整、可验证的问题。这样,志愿者就不必浪费任何时间来模拟您的表格来测试他们建议的查询。
SELECT users.name, posts.body
FROM posts
    INNER JOIN users ON
        users.id = Posts.user_id
    -- use left join to handle when a 
    -- user has no followers
    LEFT JOIN Followers ON
        Followers.user_id = users.user_id
WHERE
    users.id = :userid
    OR followers.follower_id = :userid