我有一个这种格式的关系数据库
Table: posts
Columns: post_id,post_title,post_content
Table: categories
Columns: category_id,category_name
Table: posts_categories
Columns: post_id,category_id
帖子可以有多个类别,所以我使用post和category id将它们存储在posts_categories中,当我使用下面的查询从数据库获得结果时,它只显示最后一个类别,是否可以显示所有类别,否则我必须运行一个单独的查询,这里是我的代码。
$this->db->select("p.*,pc.*,c.*");
$this->db->where('post_id', $id);
$this->db->from('posts AS p');
$this->db->join('posts_categories AS pc', 'pc.post_id = p.post_id', 'inner');
$this->db->join('categories AS c', 'pc.category_id = c.category_id', 'inner');
$q = $this->db->get();
感谢您的帮助。
答案 0 :(得分:1)
您没有提到实际选择的字段。但是,您可以SELECT p.title, c.category_name
并在完成查询后(在问题中提到),您的结果中应该有多行,其中包含帖子标题和该帖子的类别名称。
现在,如果你想,你可以通过php中的帖子对这些类别进行分组,从db结果中构建一个新数组。