MySQL # 1140 - Смешивание столбцов GROUP

Привет, интересно, может ли кто-нибудь пролить свет на ошибку ниже. Sql работает нормально локально, но я получаю следующую ошибку удаленно.

SQL-запрос:

   SELECT COUNT(node.nid), 
          node.nid AS nid, 
          node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
     FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
    WHERE node.type IN ('update')
ORDER BY node_data_field_update_date_field_update_date_value DESC

MySQL сказал:

# 1140 - Смешивание столбцов GROUP (MIN(), MAX(), COUNT(),...) без Столбцы GROUP являются незаконными, если есть no GROUP BY clause`

Ответ 1

Причина того, что один столбец, использующий функцию агрегации MySQL - это единственный db, о котором я знаю, поддерживает GROUP BY, где вы можете выборочно пропускать столбцы - существует множество SO вопросы о том, почему запросы работают на MySQL, но не могут быть перенесены без изменений на другие dbs. По-видимому, в вашем случае вам все равно нужно определить хотя бы один.

Ответ 2

Возможно, на вашем сервере ONLY_FULL_GROUP_BY включен. Вы можете отключить его или добавить каждое из выбранных полей в группу.

Ответ 3

В Laravel Framework, установив 'strict' => false, в файле базы данных в папке config это будет исправлено.

Ответ 4

разделил его на основы:

   SELECT COUNT( node.nid ) 
     FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
    WHERE node.type IN ('update')
 ORDER BY node_data_field_update_date.field_update_date_value DESC

Ответ 5

У меня такая же проблема в старой версии MySQL 5.0. В новой версии 5.5 она работает!

SELECT COUNT(*), id
FROM `cities` AS `c`