i m используя Codeigniter. Я хотел показать все сообщения с их соответствующими категориями. я сделал код, но он показывает только одну категорию сообщения. почему мой код не получает все категории сообщений? любое решение или улучшение будут хорошими. вот мои коды:Получите все категории должностей
$this->db->select("posts.*, categories.*");
$this->db->from('posts');
//get cats
$this->db->join('post_cat', 'posts.post_id = post_cat.post_id', 'LEFT');
$this->db->join('categories', 'post_cat.cat_id = post_cat.cat_id', 'LEFT');
//get published blogs
$this->db->where('post_type', 'blog');
$this->db->where('post_status', 'published');
$this->db->group_by("posts.post_id");
$this->db->order_by("post_id", "desc");
$query = $this->db->get();
return $query->result_array();
Только предположение, так как я не знаю синтаксис CodeIgniter ... Вы можете использовать 'GROUP BY post.post_id', поэтому я считаю, что вам нужно использовать строки 'GROUP_CONCAT' для строк' post_cat' (если существует связь 0 ... n между сообщениями и категориями, как кажется). Или не используйте 'GROUP BY' вообще ... –
без записей трудно помочь –
@ ZZ-bb, если вы не знаете codeigniter, то вот SQL: SELECT' posts'. *, 'Categories'. * FROM ('posts') LEFT JOIN' post_cat' ON 'post_cat'.post_id' =' posts'.'post_id' LEFT JOIN 'categories' ON' categories'.'cat_id' = 'post_cat'.cat_id' WHERE' post_type' = 'news' AND 'post_status' = 'published' GROUP BY' posts'.'post_id' ORDER BY 'post_id' desc –