Codeigniter active record select, left join, count

前端 未结 2 938
旧巷少年郎
旧巷少年郎 2021-01-15 17:57

I have a form that shows results from a database query, these results can have many other assets ajoined to them and I wanting to find a way of showing how many assets each

相关标签:
2条回答
  • 2021-01-15 18:35
    select places.place_id,
           count(*) as UsersAtThisPlace
       from
           places,
           users
       where 
           places.place_id = users.place_id
       group by
           places.place_id
    

    Don't know exactly how to implement via your PHP, but it should be as simple as the above query all within your

    $this->db->select( "entire string example above" );

    Additionally, if you had other descriptive elements from the places table, you could add those as well before the count (just for clarity), but would also have to include them in the group by... such as

    select places.place_id,
           places.description,
           places.otherfield,
           count(*) as UsersAtThisPlace
       from
           places,
           users
       where 
           places.place_id = users.place_id
       group by
           places.place_id,
           places.description,
           places.otherfield
    
    0 讨论(0)
  • 2021-01-15 18:46

    Not knowing your exact db setup, but something like this is how you would do this query using CodeIgniter's Active Record

     $this->db->select('places.place_id');
     $this->db->select_sum('places.place_id', 'total');
     $this->db->from('places');
     $this->db->join('users', 'places.place_id = user.place_id', 'left');
     $this->db->group_by('user.place_id');
     $this->db->get();
    
    0 讨论(0)
提交回复
热议问题