使用SQL连接表关系

时间:2012-07-29 15:49:18

标签: php mysql php-5.3

我尝试创建一个facebook风格的新闻Feed,它会显示朋友和你自己的内容。目前我真的很挣扎,不确定我是否正确行事。

我有一个名为user_followers的表

CREATE TABLE IF NOT EXISTS `user_Followers` (
  `user_follower_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `follower_id` int(11) NOT NULL,
  `date_followed` datetime NOT NULL,
  PRIMARY KEY (`user_follower_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

另一个名为usersActivity

CREATE TABLE IF NOT EXISTS `usersActivity` (
  `activity_id` int(11) NOT NULL AUTO_INCREMENT,
  `activity_identifier` enum('1','2','3') NOT NULL,
  `user_identifier` int(11) NOT NULL,
  `row_id` int(11) NOT NULL,
  `timestamp` datetime NOT NULL,
  PRIMARY KEY (`activity_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;

user_id存储用户的ID,与其他用户关联/关注的朋友,以及follower_id是被关注者的ID

我们要做的是获取成员1所关注的所有用户的follower_id,然后获取他们的活动以及成员1活动并在页面上显示它。通过检查user_identifier是成员1还是他/她正在关注的人。

到目前为止,这是我得到的:

// Fetch userActivity data
$activites = mysql_query("
  SELECT 
    a.activity_id, 
    a.row_id, 
    a.activity_identifier, 
    b.follower_id
  FROM usersActivity a INNER JOIN user_Followers b ON a.user_identifier = b.follower_id
  WHERE a.user_identifier=b.follower_id
  ORDER BY activity_id DESC 
  LIMIT 0,20");

我希望你能理解我上面写的内容。

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

在你的SQL查询中你写了'user_Followes'而不是'user_Followers'

这是sql查询中的拼写错误吗?

并尝试使用AS

对表进行别名处理
SELECT a.activity_id FROM usersActivity AS a