【问题标题】:kohana order group by and countkohana order group by and count
【发布时间】:2014-06-09 12:04:56
【问题描述】:

我有这样的 orm 查询:

$userCountries = ORM::factory('User')
                ->select(array(DB::expr('countries.code, COUNT("countries.id") as total')))
                ->join('countries')
                ->on('user.country_id', '=', 'countries.id')
                ->group_by('country.name')
                ->order_by('total', 'DESC')
                ->find_all();

我想要的是国家代码以及来自国家/地区的总用户数量。

我不知道这里出了什么问题。我花了3个小时没有成功。

这个查询有什么问题?

【问题讨论】:

  • 查询可能没有问题,尽管您使用的是 ORM 库。这意味着$userCountries 填充了User 类型的ORM 模型。尝试使用DB::select() 重写查询,这只需要更改几行。

标签: orm count group-by kohana


【解决方案1】:

您的 SELECT 参数错误 ->select('countries.code', array(DB::expr('COUNT("countries.id")', 'total')))

我认为 Group by 应该是 ->group_by('countries.name') instead of ->group_by('country.name')

所以你的总查询看起来像

$userCountries = ORM::factory('User')
            ->select('countries.code', array(DB::expr('COUNT("countries.id")', 'total')))
            ->join('countries')
            ->on('user.country_id', '=', 'countries.id')
            ->group_by('countries.name')
            ->order_by('total', 'DESC')
            ->find_all();`

看看这个...

【讨论】:

  • 谢谢,这里有问题。我有未定义的偏移量:1 - 错误
猜你喜欢
  • 1970-01-01
  • 2019-01-27
  • 2012-05-06
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 2016-01-25
  • 2011-04-18
  • 1970-01-01
相关资源
最近更新 更多