--게시판 제목, 작성자, 내용, 등록일자 CREATE TABLE BOARD ( NO NUMBER, TITLE VARCHAR2(100), WRITER VARCHAR2(50), CONTENTS VARCHAR2(200), REGDATE DATE, CONSTRAINT BOARD_PK PRIMARY KEY(NO) ); --댓글 번호, 테이블 번호, 댓글 작성자, 댓글 내용 CREATE TABLE COMMENTS ( C_NO NUMBER, NO NUMBER, C_WRITER VARCHAR2(50), C_CONTENTS VARCHAR2(100), CONSTRAINT COMMENT_PK PRIMARY KEY (C_NO), CONSTRAINT COMMENT_FK FOREIGN KEY (NO) REFERENCES BOARD(NO) ); --오라클 복합 게시판 쿼리(댓글갯수, 페이징, 검색조건) SELECT b.rn, b.TITLE, b.WRITER, TO_CHAR(b.REGDATE, 'YYYY-mm-dd') AS REGDATE, b.cnt FROM ( SELECT ROWNUM rn, a.TITLE, a.WRITER, a.REGDATE, a.cnt FROM ( SELECT B.NO,B.TITLE, B.WRITER, B.REGDATE ,( SELECT COUNT(NO) FROM COMMENTS A WHERE A.NO = B.NO ) AS CNT --댓글갯수 FROM BOARD B WHERE B.TITLE = '%TEST%' --검색조건 ORDER BY NO DESC ) a WHERE ROWNUM <= 20 --마지막 게시물 번호 ) b WHERE rn BETWEEN 11 AND 20; --11번부터 20번 게시물 |
'DB > ORACLE' 카테고리의 다른 글
오라클 11g hr계정 연습문제 (3) | 2018.02.28 |
---|