반응형
하위 쿼리가 있는 HAVING 절에 사용된 비그룹화 필드
MariaDB의 경우ONLY_FULL_GROUP_BY
옵션이 활성화되었습니다. 오류가 발생했습니다.
HAVING 절에 그룹화되지 않은 필드 'vcount'가 사용되었습니다.
조회를 실행할 때
SELECT c.* FROM
automobile_company c
LEFT OUTER JOIN (SELECT company_id, COUNT(*) AS vcount FROM automobile_variant GROUP BY company_id) vc
USING (company_id)
WHERE c.automobile_type = 0 AND vc.vcount > 0;
하지만 쿼리에는 다음이 없습니다.HAVING
절
- MariaDB가 최적화를 위해 쿼리를 다시 작성하기 때문입니까?
- GROUP BY를 하위 쿼리 밖으로 이동하지 않고 위 쿼리를 다시 작성할 수 있습니까?
- 하위 쿼리 없이 간단한 LEFT OUTER JOIN을 사용하고 GROUP BY 절에서 선택해야 하는 모든 필드를 언급하는 것이 제 유일한 옵션입니까?
authoric_variant에 행이 있는지만 확인하면 되는 경우, 다음과 같이 카운트나 그룹이 필요하지 않습니다.
SELECT c.* FROM automobile_company c WHERE c.automobile_type = 0 AND
EXISTS(select company_id from automobile_variant av where av.company_id=c.company_id);
언급URL : https://stackoverflow.com/questions/45146830/non-grouping-field-used-in-having-clause-with-sub-query
반응형
'programing' 카테고리의 다른 글
MariaDB 도커 시작 실패 (0) | 2023.07.30 |
---|---|
스웨거 주석이 있는 스웨거에서 설명과 예제를 설정하려면 어떻게 해야 합니까? (0) | 2023.07.30 |
Spring 통합 테스트는 많은 메모리를 소비하고 GradleWorkerMain에서 많은 수의 중복 스레드를 사용합니다. (0) | 2023.07.30 |
ORACLE 11g의 테이블 값 함수 ? (파라미터화된 보기) (0) | 2023.07.30 |
조각에 빈 생성자가 정말 필요합니까? (0) | 2023.07.30 |