我有一个显示数据库查询结果的表单,这些结果可以包含许多其他资产,我希望找到一种方法来显示每个元素有多少资产。例如,我的表是英格兰的区域,另一个表有用户居住的地方我目前有这个代码,
$this->db->select('*');
$this->db->from('places');
$this->db->join('users, places.place_id = user.place_id, left');
$this->db->get();
我遇到的问题是获取查询以返回地名和居住在该地方的用户数量,这有可能吗?
答案 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