簡體   English   中英

Codeigniter查詢count()連接三個表的總注釋

[英]Codeigniter query count() total comments joining three tables

我正在嘗試創建一個查詢,以便從我的博客表中獲取單個博客帖子,並同時從該用戶的用戶表中獲取該用戶的信息,使用Join但是現在我要計算該博客的總評論數總共發布,因此將是用於查詢blog, users and comments三個表

但是下面的代碼顯示了3個博客條目,它們具有相同的內容,以及將COUNT(*)用作注釋表總數的位置,任何建議都很棒!

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;
            }

    }

嘗試使用它,您可以根據需要更改查詢:-

  $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();

計算評論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;
            }

    }

試試這個。我希望它對你有用。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM