2016-12-28 5 views
0

新しいバージョンのSQLにはいくつかの問題がありますが、これはonly_full_group_byオプションを使用しています。私は2つのテーブル:センサーとデータを持っています。センサテーブルHAS_MANYデータ。したがって、データテーブルはセンサテーブルのpkへの外部キーを持ちます。ここで1つのリレーションは次のとおりです。Yii 1.1:PkがリレーションのためにSELECTに自動的に追加されました

'avg' => array(self::HAS_MANY, 'Data', 'sensor_id', 'select' => 'AVG(value) AS avg, date AS date', 'group' => 'date', 'order' => 'date desc') 

aggrgatedされていないSELECTステートメントの列があるのでYiiは不平を言っています。この列は、自動的に生成されたクエリの選択に追加されるように思われ、データテーブルの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

ありがとうは、誰もが利用できるようにここにそれを書いて、自分で答えを見つけました。 この問題を解決するには、SELECT句にidを追加し、yii生成クエリによって指定された別名を与える必要があります。だから、私のクエリで私は

SELECT id as t0_c1 ... 

を持っている私は

SELECT ANY_VALUE(id) as t0_c1 ... 
にそれを変更
関連する問題