【问题标题】:Codeigniter active record select, left join, countCodeigniter 活动记录选择、左连接、计数
【发布时间】:2010-04-08 11:42:09
【问题描述】:

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

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

$this->db->get();

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

【问题讨论】:

    标签: php mysql activerecord codeigniter


    【解决方案1】:

    不知道您的确切数据库设置,但您可以使用 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();
    

    【讨论】:

      【解决方案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("上面的整个字符串示例");

      此外,如果您有来自位置表的其他描述性元素,您也可以在计数之前添加这些元素(只是为了清楚起见),但还必须将它们包含在组中...例如

      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
      

      【讨论】:

        猜你喜欢
        • 2014-06-22
        • 1970-01-01
        • 2011-09-16
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        • 2013-01-06
        • 1970-01-01
        相关资源
        最近更新 更多