쿼리문 질문드립니다.

쿼리문 질문드립니다.

QA

쿼리문 질문드립니다.

본문


        select a.mb_name, b.mb_id, c.mb_id, count(*) as cnt,
        count(DISTINCT b.wr_31) as b_number,
        count(DISTINCT c.wr_31) as c_number,
        sum(DISTINCT b.wr_31) as totb,
        sum(DISTINCT c.wr_31) as totc,
         from g5_member a
               inner join {$write_table} b on a.mb_id = b.mb_id
               inner join {$write_target} c on b.mb_id = c.mb_id
         where
               b.wr_29 between '{$stx1}' and '{$stx2}' and b.wr_41 like '%{$stx3}%' and
               c.wr_29 between '{$stx1}' and '{$stx2}' and c.wr_41 like '%{$stx3}%'
         group by a.mb_name

 

B게시판과 C게시판을 비교해서 값을 내는 쿼리문인데요...

뽑아내고 보니까 B게시판과 C게시판에 모두 글을 작성 한 회훤만 뽑아내고 있습니다.

 

둘중 하나라도 작성한 회원도 뽑아낼려면 어떻게 해야 하나요?

한곳에만 적은 회원은 다른 게시판에 0원으로 처리해서 뽑아내면 되는데.. 그게 잘 안되고 있습니다.

이 질문에 댓글 쓰기 :

답변 2

이너조인 하지마시고 아우터조인 하시면 될듯합니다!

from g5_member a
              inner join {$write_table} b on a.mb_id = b.mb_id
              inner join {$write_target} c on b.mb_id = c.mb_id
        where
              b.wr_29 between '{$stx1}' and '{$stx2}' and b.wr_41 like '%{$stx3}%' and
              c.wr_29 between '{$stx1}' and '{$stx2}' and c.wr_41 like '%{$stx3}%'



from
    g5_member a
inner join
    {$write_table} b
on
    a.mb_id = b.mb_id
left outer join
    {$write_target} c
on
    b.mb_id = c.mb_id
    and c.wr_29 between '{$stx1}' and '{$stx2}'
    and c.wr_41 like '%{$stx3}%'
where
    b.wr_29 between '{$stx1}' and '{$stx2}'
    and b.wr_41 like '%{$stx3}%'


이렇게 수정해보시면 어떨지 ㅎㅎ

where절의 b... 부분이랑 c...부분이 and라 그런게 아닌가요?

and로 하니깐 d랑 c에 다 작성한게 조건에 맞을거고 b랑 c를 따로 묶어서 두개를 or로 연결해야할거같은데

 

한번 확인해보시죠

답변을 작성하시기 전에 로그인 해주세요.
전체 167
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT