[英]Codeigniter 3 - Join doesn't return all results
我有这个查询:
return $this->db
->select('forumCategories.id, forumCategories.name, forumCategories.order, forumCategories.date_created, COUNT(forumPosts.forumCategory_id) as postCount')
->from('forumCategories')
->join('forumPosts', 'forumCategories.id = forumPosts.forumCategory_id', 'left')
->group_by('forumPosts.forumCategory_id')
->order_by('forumCategories.order DESC')
->get()
->result_array();
该查询将获取所有论坛类别,并计算每个类别的帖子。 问题在于,它只采用有帖子的类别,再加上仅一个尚无任何帖子的类别。
例:
Category 1 | 16 posts
Category 2 | 3 posts
Category 3 | 0 posts
Category 4 | 0 posts
Category 5 | 0 posts
Category 6 | 0 posts
仅返回类别1、2和3。 如何编写此查询,以便返回所有类别?
尝试使用始终具有价值的第一个表列(forumCategories.id)进行分组。
return $this->db
->select('forumCategories.id, forumCategories.name, forumCategories.order, forumCategories.date_created, COUNT(forumPosts.forumCategory_id) as postCount')
->from('forumCategories')
->join('forumPosts', 'forumCategories.id = forumPosts.forumCategory_id', 'left')
->group_by('forumCategories.id')
->order_by('forumCategories.order DESC')
->get()
->result_array();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.