0

我有两张桌子。

表 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

但是我只能得到第一条记录,而没有第二条记录。而且我已经尝试过 IFNULL 函数并离开了连接表。真的不知道如何解决这个问题。有谁知道解决方案或问题是什么?提前致谢。

4

1 回答 1

0

使用get('A')而不是get_all()

于 2012-08-03T10:56:49.900 回答