0

我有一个这种格式的关系数据库

Table: posts
Columns: post_id,post_title,post_content

Table: categories
Columns: category_id,category_name

Table: posts_categories
Columns: post_id,category_id

帖子可以有多个类别,所以我使用帖子和类别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();

谢谢你的帮助。

4

1 回答 1

1

您没有提及您实际选择的字段。但是,您可以SELECT p.title, c.category_name并且在进行查询(在问题中提到)之后,您的结果中应该有多行,其中包含帖子标题和该帖子的类别名称。

现在,如果您愿意,您可以按 php 中的帖子对这些类别进行分组,从 db 结果构建一个新数组。

于 2012-09-08T22:52:11.367 回答