가입한 회원들의 정보가 저장된 테이블 MEMBER
신고 사유가 누적되는 테이블 REPORT
신고 사유가 컬럼 하나에 숫자로 누적되는 형식이 아니라
로우 데이터로 쌓이는 형식이라 그룹함수 COUNT로 데이터를 뽑아 오고 싶었다.
그런데 신고 테이블엔 닉네임이 아닌 이메일만 있어서 닉네임과 신고 횟수만 뽑아내고 싶었다.
inner join이나 natural join으로 잘 하면 될 것 같았는데... 잘 안됐다.
30분을 붙잡고 씨름한 끝에 데이터를 뽑아냈다.
select m.member_nickname, count(r.member_email) report_count
from report r, member m
where r.member_email = m.member_email
group by m.member_nickname
order by report_count desc;
근데 왜 매퍼 파일에 적용하니까 자꾸 오류가 뜨냐..?
데이터는 제대로 나오는데... ㅜㅜ
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended
### The error may exist in file [C:\Users\User\Documents\workspace-sts-3.9.11.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\togetherism\WEB-INF\classes\sql\manager.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: select m.member_nickname, count(r.member_email) from report r, member m where r.member_email = m.member_email group by m.member_nickname desc
### Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended
정답은 테이블 별칭 제거하기 였다.. ^^
--매퍼 적용 시 오류난 SQL문
select m.member_nickname, count(r.member_email) report_count
from report r, member m
where r.member_email = m.member_email
group by m.member_nickname
order by report_count desc;
--정상 실행 SQL문
select member.member_nickname, count(report.member_email) report_count
from report, member
where report.member_email = member.member_email
group by member.member_nickname
order by report_count desc;
'프로젝트 > 세미 프로젝트' 카테고리의 다른 글
스프링 프로젝트) 게시판 글쓰기 폼에 에디터 api 추가하기 (0) | 2022.11.03 |
---|---|
깃에 올려진 프로젝트 pull 했을 때 실행이 안되는 문제 (0) | 2022.11.02 |
스프링 프로젝트 ) 파일을 첨부한 게시글 수정 시 다른 파일을 첨부하지 않고 기존의 첨부파일을 삭제하기 (0) | 2022.10.31 |