我希望对我的新闻文章页面的嵌套查询提供一些帮助 - 基本上我希望每篇文章都在其下方显示相关的评论,但目前它只会为每篇文章返回一条评论:(
function get_records($limit, $offset, $sort) {
$this->db->select('news.*, COUNT(comments.news_id) as comments, comments.comment as comment, news.id as id, news.created_on as created_on, CONCAT(users.firstname, " ", users.surname) as author, categories.category as category, news_types.type as news_type', FALSE);
$this->db->from('news', 'comments');
$this->db->join('users', 'users.id = news.author', 'left');
$this->db->join('comments', 'comments.news_id = news.id', 'left');
$this->db->join('categories', 'categories.id = news.category', 'left');
$this->db->join('news_types', 'news_types.id = news.news_type', 'left');
$this->db->group_by('news.id');
$this->db->order_by('news.id', 'DESC');
$this->db->limit($limit, $offset);
$query = $this->db->get();
if($query->num_rows() > 0) {
return $query->result_array();
}
}
答案 0 :(得分:3)
$this->db->group_by('news.id');
GROUP BY每个新闻项目只会返回一条记录,这就是为什么你只收到一条评论。您将需要获取第二个查询以获取所有注释或删除GROUP BY以获取具有冗余新闻项信息的所有注释(这实际上不是一个好主意)。
答案 1 :(得分:2)
这是你想要做的 - 理论上,而不是代码:
你想要制作一大堆新闻故事,数组中的一个项目是匹配评论的另一个数组。
然后从模型中将整个新数组/对象返回给控制器。
)