codeigniter query count()连接三个表的注解总数

nimxete2  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(232)

我正在尝试创建一个查询,以便从我的blog表中获取单个blog文章,同时从我的users表中的该用户处获取信息,该用户表可以使用 Join 但是现在我想把那篇博客文章的评论总数计算为total,这样就可以查询三个表了 blog, users and comments 但是下面的代码显示3个博客条目,内容相同,太好了!

public function get_entry(){

        $id = $this->input->post('ID', true);

        $this->db->select('*, u.ID');
        $this->db->where('u.ID', $id)
         ->from('gb_blod as u')
         ->join('gb_users as a', 'u.user_email = a.email', 'LEFT')
         ->join('gb_comments as b', 'u.ID = b.journal_id', 'LEFT');
         $result = $this->db->get();

            if($result->num_rows() > 0){

            return $result->result_array();

            }else{

                return false;
            }

    }
3qpi33ja

3qpi33ja1#

计算评论id并按博客id对查询进行分组。

public function get_entry(){

        $id = $this->input->post('ID', true);

        $this->db->select('u.*, a.*, count(b.ID) as total');
        $this->db->where('u.ID', $id)
         ->from('gb_blod as u')
         ->join('gb_users as a', 'u.user_email = a.email', 'LEFT')
         ->join('gb_comments as b', 'u.ID = b.journal_id', 'LEFT')
         ->group_by('u.ID');
         $result = $this->db->get();

            if($result->num_rows() > 0){

            return $result->result_array();

            }else{

                return false;
            }

    }
7fhtutme

7fhtutme2#

尝试使用此选项,您可以根据您的请求更改查询quirement:-

$usr_flds = "count(u.ID) as count_rows";
  $this->db->select('usr_flds');
  $this->db->where('u.ID', $id)
 ->from('gb_blod as u')
 ->join('gb_users as a', 'u.user_email = a.email', 'LEFT')
 ->join('gb_comments as b', 'u.ID = b.journal_id', 'LEFT');
   $result = $this->db->get();
   return $res->num_rows();
jtoj6r0c

jtoj6r0c3#

试试这个。我希望对你有用。

$result = $this->db->get();
 $count = $result->get()->num_rows();
        return [$result, $count];

相关问题