> 데이터 베이스 > MySQL 튜토리얼 > MySQL 오류 #1140: GROUP 열 혼합을 해결하는 방법은 무엇입니까?

MySQL 오류 #1140: GROUP 열 혼합을 해결하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-29 16:51:17
원래의
750명이 탐색했습니다.

How to Resolve MySQL Error #1140: Mixing of GROUP Columns?

MySQL 오류 #1140: GROUP 열 혼합

이 오류는 MySQL 쿼리에서 GROUP 함수와 GROUP이 아닌 열을 혼합할 때 발생합니다. SELECT 목록이지만 GROUP BY 절은 없습니다. 즉, 선택한 열 중 일부는 함께 그룹화해야 하고 다른 열은 그룹화하지 말아야 함을 제안합니다.

다음 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;
로그인 후 복사

이 쿼리는 'update' 유형의 노드 수를 확인하고 각 노드의 노드 ID(nid)와 업데이트 날짜를 검색합니다. 그러나 SELECT 목록에서 GROUP 함수 COUNT()를 GROUP이 아닌 열 nid 및 node_data_field_update_date_field_update_date_value와 혼합합니다.

이 오류를 해결하려면 MySQL 서버에서 ONLY_FULL_GROUP_BY 설정을 비활성화하거나 쿼리를 그룹화하도록 수정하세요. 비 GROUP 열:

ONLY_FULL_GROUP_BY 비활성화:

mysql> SET GLOBAL ONLY_FULL_GROUP_BY = OFF;
로그인 후 복사

쿼리에 그룹화 추가:

SELECT COUNT(node.nid) AS node_count,
       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')
GROUP BY node.nid, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;
로그인 후 복사

위 내용은 MySQL 오류 #1140: GROUP 열 혼합을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿