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`