【发布时间】:2021-04-01 02:17:13
【问题描述】:
我有一个查询,我想在其中找到一家公司的名称及其员工人数。问题是我想通过某些条件(如employee_number > 50 等)过滤此结果。我的问题是,在构建查询时,我不知道如何过滤这个结果,因为条件是在计算字段上设置的,所以在应用条件时它会给我以下内容
Error: `SQLSTATE[42S22]: Column not found: 1054 Unknown column 'employee_number' in 'where clause'`.
我一直在尝试不同的东西,但这是我目前拥有的:
$query = $this->Companies->find('all')->where($conditions)->contain(['Users']);
$query
->select(['Users.name',
'Company.modified',
'employee_number' => $query->func()->count('DISTINCT(Employees.id)')])
->where('employee_number >' => 50 )
->leftJoinWith('Employees', function (\Cake\ORM\Query $query) {
return $query->where(['deleted' => 0]);
})
->group(['Employees.company_id', 'Company.id']);
【问题讨论】:
标签: sql cakephp cakephp-3.0