criteria-> group不适用于yii

时间:2015-05-06 13:23:26

标签: php mysql yii

我想在yii查询中使用criteria-> group但它会出现错误,如

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

目前我使用的是:

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

当我只使用订单时,它的工作原理如下:

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的新人。

1 个答案:

答案 0 :(得分:1)

如果reg.user_first_name组字段必须在结果集中,则无法按SELECT t.attendant_id, t.user_id FROM ...分组。

所以试试吧:

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

如果你GROUP BY,你应该使用任何汇总函数(SUMCOUNTMAX ...)。