[SQL] MySQL은 # 1140 - GROUP 컬럼의 혼합
SQLMySQL은 # 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은 말했다 :
해결법
-
==============================
1.당신이 GROUP BY 절을 지정해야하기 때문에 열이있는 버전이 집계 함수를 사용하지 않는 동안 집계 함수를 사용하여 단일 열을하지 않습니다 작동하는 이유입니다. 다음은 쿼리가 유사 보일 것입니다 무엇 :
당신이 GROUP BY 절을 지정해야하기 때문에 열이있는 버전이 집계 함수를 사용하지 않는 동안 집계 함수를 사용하여 단일 열을하지 않습니다 작동하는 이유입니다. 다음은 쿼리가 유사 보일 것입니다 무엇 :
SELECT COUNT(n.nid), n.nid, ctu.field_update_date_value FROM NODE n LEFT JOIN CONTENT_TYPE_UPDATE ctu ON ctu.vid = n.vid WHERE n.type IN ('update') GROUP BY n.nid, ctu.field_update_date_value ORDER BY field_update_date_value DESC
쉽게 읽을 수 - 나는 짧은 것들에 대한 테이블 별칭을 변경했습니다. 여기에 문제의 고기는 다음과 같습니다
SELECT n.nid, COUNT(n.fake_example_column), ctu.field_update_date_value ... GROUP BY n.nid, ctu.field_update_date_value
나는 필요 BY 그룹이 정의하는 방법을 강조하기 위해 가짜 열을 사용하는 예를 변경. 당신이 집계 함수에 배치하지 않고 참조하는 열이 GROUP BY에서 언급 할 것이다. 나는 MySQL이 때문에해야 말하는 내가 그 지원의 알고 있어요에만 DB를 사용자가 선택적으로 생략 열 수있는 BY 그룹 - 쿼리를 MySQL을 작동하지만, 다른 DBS에 대한 변경없이 이식 할 수없는 이유에 대해 많은 SO 질문이 있습니다. 분명히 귀하의 경우, 당신은 여전히 적어도 하나에서 정의해야합니다.
-
==============================
2.귀하의 서버가 아마 ONLY_FULL_GROUP_BY 켜져있다. 당신이 중 하나를 끄거나하여 그룹에 선택한 각 필드를 추가 할 수 있습니다.
귀하의 서버가 아마 ONLY_FULL_GROUP_BY 켜져있다. 당신이 중 하나를 끄거나하여 그룹에 선택한 각 필드를 추가 할 수 있습니다.
-
==============================
3.Laravel 프레임 워크에서 config 폴더에 데이터베이스 파일에 '엄격한'=> 거짓을 설정하면이 문제를 해결할 것입니다.
Laravel 프레임 워크에서 config 폴더에 데이터베이스 파일에 '엄격한'=> 거짓을 설정하면이 문제를 해결할 것입니다.
-
==============================
4.그러나 최신 SQL에서 u는 너무함으로써 그룹으로 선택의 모든 열을 사용합니다.
그러나 최신 SQL에서 u는 너무함으로써 그룹으로 선택의 모든 열을 사용합니다.
laravel 프로젝트에서이 당신은 config-> 데이터베이스에 사용
'엄격한'=> 거짓,
및 PHP는 장인 설정을 실행하여 명확한 설정 캐시 : 캐시를.
나는 당신을 위해 더 도움이 될 것이라 생각합니다.
-
==============================
5.그것은 기본에 다시 제거 :
그것은 기본에 다시 제거 :
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
-
==============================
6.나는 5.0의 이전 버전에서 동일한 문제가 있습니다. 새로운 5.5 버전에서는 작동한다!
나는 5.0의 이전 버전에서 동일한 문제가 있습니다. 새로운 5.5 버전에서는 작동한다!
SELECT COUNT(*), id FROM `cities` AS `c`
from https://stackoverflow.com/questions/1244169/mysql-1140-mixing-of-group-columns by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQLite는의 GROUP_CONCAT (0) | 2020.05.27 |
---|---|
[SQL] WHERE 절을 사용하여 여러 테이블 MySQL을 UPDATE 구문 (0) | 2020.05.27 |
[SQL] SqlParameter에 C #을 표 이름과 테이블 필드? (0) | 2020.05.27 |
[SQL] 어떻게 자바에서 선택 쿼리를 위해 준비된 문을 사용 하는가? (0) | 2020.05.27 |
[SQL] SQL 갱신 TOP1 행 쿼리 (0) | 2020.05.27 |