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
,您通常应该使用任何聚合函数(SUM
、COUNT
、MAX
...)。
我想在 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
,您通常应该使用任何聚合函数(SUM
、COUNT
、MAX
...)。