Codeigniter活动记录选择,左连接,计数

时间:2010-04-08 11:42:09

标签: php mysql activerecord codeigniter

我有一个显示数据库查询结果的表单,这些结果可以包含许多其他资产,我希望找到一种方法来显示每个元素有多少资产。例如,我的表是英格兰的区域,另一个表有用户居住的地方我目前有这个代码,

$this->db->select('*');
$this->db->from('places');
$this->db->join('users, places.place_id = user.place_id, left');

$this->db->get();

我遇到的问题是获取查询以返回地名和居住在该地方的用户数量,这有可能吗?

2 个答案:

答案 0 :(得分:5)

不知道您的确切数据库设置,但类似这样的是如何使用CodeIgniter的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();

答案 1 :(得分:2)

select places.place_id,
       count(*) as UsersAtThisPlace
   from
       places,
       users
   where 
       places.place_id = users.place_id
   group by
       places.place_id

不确切知道如何通过PHP实现,但它应该像上面的查询一样简单

$ this-> db-> select(“上面的整个字符串示例”);

此外,如果您在places表中有其他描述性元素,您也可以在计数之前添加这些元素(仅为了清晰起见),但也必须将它们包含在组中......例如

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