조회 관련 질문입니다~! 0 4 476

by 천만달러 [Tibero] [2022.01.25 15:15:31]


SELECT F.RNUM
    , F.TOTCNT
    , F.CONTENTS_ID
    , F.CONTENTS_TYPE
    , F.TITLE
    , F.DESCRIPTION
    , F.GRC_NAME
    , F.GRP_TYPE
    , F.UPDATE_USER
    , F.UPDATE_DATE
    , F.IMG_ID
    , F.IMG_NAME
    , F.THUM_ID
    , F.THUM_NAME
    , F.POSTER_ALT
    , F.THUMB_ALT
FROM (
    SELECT CEIL ((ROW_NUMBER() OVER(ORDER BY A.PUBLISH_DATE DESC)+0.00) / (5+0.00)) AS RNUM
        , COUNT(*) OVER() TOTCNT
        , A.CONTENTS_ID
        , A.CONTENTS_TYPE
        , A.TITLE
        , A.DESCRIPTION
        , A.ASSET_ID_THUMBNAIL
        , A.UPDATE_USER
        , A.UPDATE_DATE
        , A.PUBLISH_DATE
        , C.GRP_TYPE
        , D.GRC_NAME
        , G.ASSET_ID AS IMG_ID
        , G.SAVE_FILE_NAME AS IMG_NAME
        , G.FILE_ALT AS POSTER_ALT
        , H.ASSET_ID AS THUM_ID
        , H.SAVE_FILE_NAME AS THUM_NAME
        , H.FILE_ALT AS THUMB_ALT
    FROM TB_CONTENTS A, TB_MGMT_GROUP C, TB_MGMT_GROUPCOM D, TB_ATTACH_FILE G, TB_ATTACH_FILE H
    WHERE 1=1
    AND A.CONTENTS_ID = C.CONTENTS_ID(+)
    AND A.CONTENTS_ID = D.CONTENTS_ID(+)
    AND A.ASSET_ID_POSTER = G.ATTACH_ID(+)
    AND A.ASSET_ID_THUMBNAIL = H.ATTACH_ID(+)
    AND A.DEL_YN = 'N'
    AND A.USE_YN = 'Y'
    AND A.LANG_CD(+) = 'KO'
    AND C.LANG_CD(+) = 'KO'
    AND D.LANG_CD(+) = 'KO'
    AND A.CONTENTS_TYPE IN ('STG','LSP','COP','HIS','GRC')
) F

 

위 쿼리가 있는데요 맨 하단에 AND A.CONTENTS_TYPE IN ('STG','LSP','COP','HIS','GRC') 이부분을 손보고 싶은데요

A.CONTENTS_TYPE 이 ('STG','LSP','COP','HIS') 요거까지는 C.GRP_TYPE = 'I' 로 검색하는 조건을 주고 싶고

A.CONTENTS_TYPE 이 ('GRC') 인거는 모두 조회하고 싶은데요.

한 쿼리에 이게 가능할까요?

by 마농 [2022.01.25 15:22:10]


아우터 조인이라 좀 애매 하네요.
원하는게 다음 1,2번 중에 어떤 의미가 될까요?
1. AND (A.CONTENTS_TYPE = 'GRC' OR C.GRP_TYPE    = 'I')
2. AND (A.CONTENTS_TYPE = 'GRC' OR C.GRP_TYPE(+) = 'I')
1번은 아우터 조인이 아닌 이너조인 형태가 되고
2번은 아우터 조인인데 최신 버전이 아니라면 구문 오류가 날 것입니다.


by 천만달러 [2022.01.25 15:33:41]

1번으로 해결했습니다.

언제나 질문할때마다 도움을 주셔서 감사합니다...ㅠ


by 마농 [2022.01.25 15:34:49]

1번이 맞다면?
혹시 애초에 아우터 조인할 필요가 없었던 것은 아닌지? 생각해 봐야 합니다.
이너조인이 기본이 되고 아우터 조인은 필요할 때만 사용하는게 원칙인데
아우터 조인이 기본인 것처럼 사용하는 경우를 많이 봐왔습니다.


by 천만달러 [2022.01.25 16:17:53]

제가 아우터 조인이 기본인거 처럼 사용하는 1인이었습니다...

이제부터는 이너조인을 기본으로 사용하도록 하겠습니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입