제가 찾고자 하는건 "댓글이 가장 많이 달린 게시글의 태그명은 무엇인가?" 입니다. 그래서 먼저 댓글이 가장 많이 달린 게시글 인덱스를 찾았습니다.
-----------------------------------------------------------
SELECT DOCUMENTS_SRL FROM ( SELECT COMMENTS.DOCUMENTS_SRL, COUNT(*) AS COMMENTS_NUM FROM COMMENTS GROUP BY COMMENTS.DOCUMENTS_SRL ) WHERE ROWNUM = 1 ORDER BY COMMENTS_NUM DESC
---------------------------------------------------------
저 쿼리를 단독으로 실행하면
DOCUMENTS_SRL | |
1 | 1 |
이 나옵니다.
그리고 그 부속질의 밖에 이 게시글 인덱스를 만족하는 태그명을 찾았습니다.
-----------------------------------------------------------
SELECT TAGS.NAME FROM DOCUMENTS, TAGS WHERE DOCUMENTS.DOCUMENTS_SRL IN ( SELECT DOCUMENTS_SRL FROM ( SELECT COMMENTS.DOCUMENTS_SRL, COUNT(*) AS COMMENTS_NUM FROM COMMENTS GROUP BY COMMENTS.DOCUMENTS_SRL ) WHERE ROWNUM = 1 ORDER BY COMMENTS_NUM DESC) AND DOCUMENTS.TAG = TAGS.TAGS_SRL;
-----------------------------------------------------------
근데 ORA-00907: missing right parenthesis 라는 오류가 뜹니다.
너무 황당해서 직접 부속질의에 '1'을 넣어봤습니다.
-------------------
SELECT TAGS.NAME FROM DOCUMENTS, TAGS WHERE DOCUMENTS.DOCUMENTS_SRL IN ('1') AND DOCUMENTS.TAG = TAGS.TAGS_SRL;
-------------------
결과는
NAME | |
1 | 공부 |
잘 나옵니다.
여기까지 했는데 뭐가 잘못인지 잘 모르겠습니다... 문법 오류도 초보자의 눈에는 없는거 같습니다
조금만 가르쳐주시면 감사하겠습니다.