我正在开发类似于Facebook评论/论坛帖子的功能。
表结构如下:
Post
========
id
txtMsg
createDate
updateDate
isShow
userID
postID
User
=======
id
name
所以,这个表已经代表了帖子和评论。这意味着,如果它是一个帖子,postID将为null,如果这是回复,则它具有父postID。
我的目标是
按创建日期(描述)获取用户的评论/帖子及其朋友的发布订单。
有一个字段调用 isShow ,这意味着,对于任何isShow为0的帖子,所有帖子和评论都不应包含在结果集中。
加入用户表以获取用户名
我在codeigniter项目上工作但是没关系,我可以转换语法SQL查询。非常感谢您提供任何帮助。
在我的预期结果中,我可以在我的界面中生成这样的输出
Comment-er name (comment date)
comment message
1st Reply-er name (1st reply date)
1st reply message
2nd Reply-er name (2nd reply date)
2nd reply message
.....
尝试这样的代码,但需要一些调整,其中$ facebookIDList包含userID和用户的朋友ID
$this->db->select('c.id as id, u.name as username, c.txtMsg as txtMsg, c.createDate as createDate, c.updateDate as updateDate, c.imageURL as imageURL, c.postID as postID, c.isShow as isShow');
$this->db->from('comment as c, user as u');
$this->db->where('u.id = c.userID');
$this->db->where('c.isShow = 1');
$this->db->where_in('c.userID', $facebookIDList);
$this->db->order_by('c.createDate', 'Desc');
答案 0 :(得分:1)
请澄清一件事。你说"所以,这个表已经代表了帖子和评论。这意味着,如果它是一个帖子,postID将为null,如果这是回复,则它具有父postID。" 如果任何新帖子的postID为null,那么你如何将父postID放回来?