php - criteria->group 不适用于 yii

标签 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';

当我只使用 order by then 时,它会像这样正常工作:

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

最佳答案

您不能按 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 ...)。

关于php - criteria->group 不适用于 yii,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078118/

相关文章:

php - 如何使用范围值在多维数组中搜索数据

php - 是否可以使用单个 mysql 查询在两个不同的表中插入数据而无需事务?

php - 如何在 3 个实体(项目、它们的类别和附加字段)之间创建数据库关系?

php - MySQL:如何获取评论内容和帖子标题

php - 如何将某个ID的表数据转移到另一个表中

java - 如何在单个 Java 文件中维护多个 SQL 数据库连接?

yii - 一列数组中的两个关系值 yii gridview

php - 插入编码查询

php - 获取 WooCommerce 成员(member)计划的所有活跃用户

PHP数据库连接