我有这个查询,我想使用 CDbCriteria 执行此查询。型号为Clog
SELECT c.id, c.answer, c.number
FROM `Clog`as c
WHERE c.company_id =20
AND date(c.answer) = '2016-04-02'
GROUP BY c.calls_id
HAVING count(c.id) <2
这是我到目前为止所尝试过的..这是在 CDbCriteria 中使用 WHERE、GROUPBY、HAVING COUNT.. 的正确方法吗..这是我在模型中的搜索功能Calls
$criteria = new CDbCriteria();
$criteria->select = 'c.id, c.answer, c.number';
$criteria->addCondition(' c.company_id='.$this->companyId);
$criteria->addBetweenCondition(' c.answer', ''.$this->start_date.'', ''.$this->end_date.'');
$criteria->group = 'c.calls_id';
$criteria->limit < 2;
任何建议,如何在模型的搜索功能中实现此目的,因为我想在 CGridView 中显示结果...
最佳答案
按“c.calls_id”分组的字段应存在于 select 语句中
$criteria->select = 'c.id, c.answer, c.number, c.calls_id';
“具有”的正确表述是,例如:
$criteria->having = "count(c.id) < 2";
关于php - 使用Where和Group By子句在Yii中的CDBCriteria中编写查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38739518/