[MySQL] pagination 쿼리

갓김치·2021년 6월 11일
0

work

목록 보기
8/10

1:1 관계

SELECT BOARD_NO
        ,BOARD_TITLE
        ,BOARD_CONTENT
        ,BOARD_WRITER
        ,BOARD_DATE
        ,BOARD_SRC
        ,BOARD_LINK
        ,BOARD_HITS
        ,BOARD_TYPE
FROM BOARD
WHERE BOARD_TYPE = 'B02'
ORDER BY BOARD_NO desc
LIMIT {start}, {offset};
  • start : 시작할 row
  • offset : 보여줄 갯수
  • 예: 한화면에 10개씩 보여줄거라면, (0,10) / (10,10) / (20,10) 이렇게 페이지를 누를 때마다 LIMIT의 값이 변해야한다

참고

1:N 관계

SELECT A.APPLY_NO
	, APPLY_NAME
    , APPLY_PHONE
    , APPLY_EMAIL
    , APPLY_CMMT
    , APPLY_FLAG
    , APPLY_DATE
    , B.APPLY_FILE_NO
    , B.APPLY_FILE_SAVE
    , B.APPLY_FILE_ORG
    , B.APPLY_FILE_SIZE
    , B.APPLY_FILE_MIME
    , B.APPLY_FILE_FANCY

        FROM (SELECT
                  APPLY_NO, APPLY_NAME, APPLY_PHONE, APPLY_EMAIL, APPLY_CMMT, APPLY_FLAG, APPLY_DATE
              FROM APPLY
              ORDER BY APPLY_NO desc
              LIMIT {start},{offset}

             ) A
LEFT OUTER JOIN APPLYFILE B on (A.APPLY_NO = B.APPLY_NO)
ORDER BY A.APPLY_NO DESC, B.APPLY_FILE_NO ASC

참고

profile
갈 길이 멀다

0개의 댓글