我在SQL的新版本中遇到了一些问题,它使用了only_full_group_by选项。我有两个表:传感器和数据。传感器表中有HAS_MANY数据,因此数据表中有一个外键到传感器表的pk。这是一个关系:
'avg' => array(self::HAS_MANY, 'Data', 'sensor_id', 'select' => 'AVG(value) AS avg, date AS date', 'group' => 'date', 'order' => 'date desc')
Yii抱怨,因为SELECT语句中有一列没有被聚合。此列是数据表的pk,它似乎会自动添加到生成的查询的选择中,实际上查询是:
SELECT AVG(value) AS avg, date as date, id_data FROM `data` `avg` WHERE ... GROUP BY date ORDER ...
我想要做的是删除添加的pk或用ANY_VALUE包装它,以便only_full_group_by选项不再抱怨。
谢谢
答案 0 :(得分:0)
自己找到答案,写在这里让每个人都可以使用。 要解决这个问题,您只需要在SELECT子句中添加id,并为它提供yii generate查询给出的相同别名。所以,在我的查询中我有
SELECT id as t0_c1 ...
我把它改成了
SELECT ANY_VALUE(id) as t0_c1 ...