해결된 질문
작성
·
120
답변 1
2
안녕하세요. Jaesang Yoon님, 공식 서포터즈 OMG입니다.
간단한 예시 쿼리로 설명드리겠습니다.
첫번째 쿼리의 첫번째 출력 필드(컬럼)의 출력 명칭
USERNAME입니다.
두번째 쿼리의 첫번째 출력 필드(컬럼)의 출력 명칭은 NAME입니다.
반면 두번째 출력인 서브쿼리의 경우 명칭(=대상을 부르는 이름)을 부여하기에는 테이블의 대상 컬럼이 아니기에 없다고 표현 하신 것 같습니다. (실제 SQL에서 서브쿼리에 as로 별도의 명칭 부여가 가능합니다.)
SELECT
M.USERNAME
, (SELECT MAX(M.AGE))
FROM MEMBER M
SELECT
M.USERNAME AS NAME
, (SELECT MAX(M.AGE))
FROM MEMBER M
그렇기에 바로 다음 설명에서 ExpressionUtil로 age라는 별도의 명칭을 부여했다고 설명하신 것입니다.
즉 QueryDSL의 프로젝션에서도 이렇게 명칭을 부여하는 방식에 대한 설명으로 이해하시면 됩니다.
SELECT
(SELECT MAX(M.AGE)) AS AGE
FROM MEMBER M
감사합니다.
상세한 답변 감사드립니다. OMG님 덕분에 명쾌하게 해결됐습니다!!
주말 잘 보내세요 🙂