criteria->group 不适用于 yii

criteria->group not works in yii

我想在 yii 查询中使用 criteria->group 但它给出了类似

的错误
CDbCommand failed to execute the SQL statement: SQLSTATE[42S21]

目前我使用的是:

$criteria->group = 'reg.user_first_name';
$criteria->order = 't.inout_time';

当我只使用 order 时,它可以正常工作,例如:

SELECT `t`.`attendant_id`, `t`.`user_id` FROM `attendance_master` `t`
LEFT JOIN registration_master reg on reg.ai_sync_id = t.user_id 
WHERE (((t.well_master_id=:ycp0) AND (t.status=:ycp1)) AND (t.user_type_id=:ycp2)) AND (t.inout_time LIKE :time) 
ORDER BY t.inout_time LIMIT 10. 
Bound with :ycp0='1429082167', :ycp1='in', :ycp2='2', :time='2015-05-06%'

但是当我按条件添加分组时会出现如下错误:

1060 Duplicate column name 'ai_sync_id'. The SQL statement executed was: 
SELECT COUNT(*) FROM (SELECT * FROM `attendance_master` `t` 
LEFT JOIN registration_master reg on reg.ai_sync_id = t.user_id 
WHERE (((t.well_master_id=:ycp0) AND (t.status=:ycp1)) AND (t.user_type_id=:ycp2)) AND (t.inout_time LIKE :time) 
GROUP BY reg.user_first_name) sq. 
Bound with :ycp0='1429082167', :ycp1='in', :ycp2='2', :time='2015-05-06%'

我知道这是个小问题,但我是 yii 的新手,所以找不到。

SELECT t.attendant_id, t.user_id FROM ... 分组字段必须在结果集中时,您不能按 reg.user_first_name 分组。

所以试试:

SELECT `t`.`attendant_id`, `t`.`user_id`, reg.user_first_name  FROM

如果您这样做 GROUP BY,您通常应该使用任何聚合函数(SUMCOUNTMAX ...)。