0

2つのテーブルがあります。

テーブルA(id、title、department)

       1,  title 1 ,  1
       2,  title 2 ,  1
       3,  title 3 ,  2

テーブルB(uid、mid、is_active)

       1, 1, 1
       2, 1, 1
       3, 3, 1

そして、これが私のクエリステートメントです:

          $this->db->select("  id, title ")  
                   ->select('   count(  B.uid ) AS B_count   ')
                   //->select('   IFNULL( COUNT( `B.uid`), 0) AS B_count ', false)
                   //->select( " IFNULL( COUNT(DISTINCT B.uid) AS B_count , 0 )" )
                   ->join( 'B', '   B.mid = A.id   ' ,  'left')
                   ->where('department', 1 )
                   ->where('B.is_active' , 1 )
                   ->limit(  $limit, $offset );     

    $this->db->group_by( array("B.mid") );         

    return $this->get_all();

そして、私はこのような結果を期待しています

id、title、B_count

    1, title 1, 2
    2, title 2, 0

ただし、最初のレコードのみを取得でき、2番目のレコードは取得できません。そして、私はすでにIFNULL関数を試し、結合テーブルを残しました。本当に問題を解決する方法がわかりません。誰かが解決策や問題が何であるかを知っていますか?前もって感謝します。

4

1 に答える 1

0

get('A')の代わりに使用get_all()

于 2012-08-03T10:56:49.900 に答える