본문 바로가기
MySql

MySQL SQL Query to Select Everything Except the Max Value

by 베이스 공부 2021. 2. 2.
반응형

세 개의 테이블에서 데이터를 가져 오는 다소 복잡한 쿼리가 있는데 이제 더 복잡해지기를 원합니다 (오 이런)!

마지막으로 게시 된 기능이 페이지의 자체 섹션에 표시되기를 바랍니다. 테이블의 마지막 항목을 선택하면 매우 쉽습니다. 그러나 복잡한 쿼리 (사이트의 메인 페이지)의 경우이 기능이 표시되지 않도록하고 싶습니다.

다음 쿼리를 이전 쿼리에 결합 하고 싶지만 올바른 결과가 반환되지 않습니다.

SELECT
    features.featureTitle AS title, 
    features.featureSummary AS body, 
    features.postedOn AS dummy, 
    DATE_FORMAT( features.postedOn,  '%M %d, %Y' ) AS posted, 
    NULL, 
    NULL, 
    staff.staffName, 
    features.featureID 
FROM 
    features 
    LEFT JOIN staff ON 
        features.staffID = staff.staffID 
WHERE features.postedOn != MAX(features.postedOn)
ORDER BY dummy DESC LIMIT 0,15

이 쿼리는 다음 오류를 반환합니다.

MySQL 오류 : # 1111-그룹 함수의 잘못된 사용

이 문제를 해결할 방법이 있습니까?

 

해결 방법

 

max 쿼리는 자체 하위 쿼리에 있어야하므로 최종 SQL은 다음과 같아야합니다.

SELECT features.featureTitle AS title,
    features.featureSummary AS body, 
    features.postedOn AS dummy,
    DATE_FORMAT( features.postedOn,  '%M %d, %Y' ) AS posted,
    NULL,
    NULL,
    staff.staffName,
    features.featureID 
FROM 
    features 
    LEFT JOIN staff ON 
        features.staffID = staff.staffID
WHERE
   features.postedOn != (select max(features.postedOn) from features)

 

참조 페이지 https://stackoverflow.com/questions/1182795

 

 

반응형

댓글