0

我已经加入了这样的帖子和标签表:

$this->db->select('*');
$this->db->from('posts');
$this->db->join('posts_tags', 'posts.post_id = posts_tags.post_id', 'left');
$this->db->join('tags', 'posts_tags.tag_id = tags.tag_id', 'left');

我如何循环浏览每个帖子,并显示它们各自标签的列表。例如:

post1: tag1, tag2
post2, tag1, tag3

目前,我可以显示标签,但它为帖子 1 和 2 返回两行。现在的输出是:

post1: tag1
post1: tag2
post2: tag1
post2: tag3

我如何为帖子返回一行,其中包含所有相关标签?

4

1 回答 1

1

使用组连接和分组结果

$this->db->select('posts.*');
$this->db->select('GROUP_CONCAT(posts_tags.tag_title) as TagTitles');
$this->db->from('posts');
$this->db->join('posts_tags', 'posts.post_id = posts_tags.post_id', 'left');
$this->db->join('tags', 'posts_tags.tag_id = tags.tag_id', 'left');
$this->db->group_by('posts.id');
$this->db->get();
于 2013-01-26T18:39:09.053 回答