У меня есть некоторые проблемы с новой версией 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 созданного запроса, на самом деле запрос:
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 опция больше не жалуется.
Спасибо!
Нашел ответ сам, написав его здесь, чтобы сделать его доступным для всех.
Чтобы решить проблему, вам просто нужно добавить id в предложение SELECT и дать ему тот же псевдоним, заданный Yii generate query. Итак, в моем запросе у меня есть
Я изменил его на