Yii 1.1: Pk автоматически добавляется в SELECT for relations

У меня есть некоторые проблемы с новой версией 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 опция больше не жалуется.

Спасибо!

Метки

1 ответ

  1. Нашел ответ сам, написав его здесь, чтобы сделать его доступным для всех.
    Чтобы решить проблему, вам просто нужно добавить id в предложение SELECT и дать ему тот же псевдоним, заданный Yii generate query. Итак, в моем запросе у меня есть

    SELECT id as t0_c1 ...
    

    Я изменил его на

    SELECT ANY_VALUE(id) as t0_c1 ...