티스토리 뷰
반응형
목표:
getPrevNotice 메서드의 SQL 쿼리를 작성한다.
ID가 5인 NOTICE의 REGDATE가 NOTICE의 REGDATE보다 작은 ID를 출력
-> 2, 3, 4로 출력되어있다. 4가 출력해야 하는데 순서가 반대로 되어있다.
NOTICE를 REGDATE로 역 정렬한 후의 NOTICE내의 REGDATE와 ID가 5인 REGDATE보다 작은 경우의 아이디를 출력
-> 4, 3, 2 순으로 잘 정렬되어있다.
SQL 코드:
getPrevNotice함수 구현
SELECT ID FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC)
WHERE REGDATE < (SELECT REGDATE FROM NOTICE WHERE ID=5) AND ROWNUM = 1
SELECT ID FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC)
☞ REGDATE를 역정렬한 NOTICE의 모든 값을 선택하는 서브 쿼리로부터 ID를 선택
WHERE REGDATE < (SELECT REGDATE FROM NOTICE WHERE ID=5)
☞ ID가 5인 NOTICE로부터 REGDATE를 가져오는 서브 쿼리보다 현재 REGDATE보다 작을 경우
AND ROWNUM = 1);
☞ ROWNUM가 1인 경우
정리 ☞ REGDATE를 역정렬한 NOTICE의 모든 값을 선택하는 서브 쿼리의 REGDATE가 ID가 5인 NOTICE의 REGDATE보다 작고 ROWNUM이 1인 경우의 ID를 출력한다.
자바 코드:
- NoticeService.java
public Notice getPrevNotice(int id) {
String sql = "SELECT ID FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC) "
+ "WHERE REGDATE < (SELECT REGDATE FROM NOTICE WHERE ID=5) AND ROWNUM = 1";
return null;
}
반응형
'Servlet JSP' 카테고리의 다른 글
서블릿/JSP 강의/강좌 76 - NoticeService 클래스 완성하기 (0) | 2021.05.28 |
---|---|
서블릿/JSP 강의/강좌 75 - getNoticeList의 JDBC 코드 구현하기 (0) | 2021.05.20 |
getNextNotice 메소드의 SQL 쿼리 작성하기 (0) | 2021.05.19 |
getNoticeList 메소드의 SQL 쿼리 작성하기 (0) | 2021.05.19 |
서비스 클래스 구현하기 (0) | 2021.05.19 |
댓글
공지사항