채택완료

쿼리문 질문드립니다.

Copy
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개 / 댓글 3개

채택된 답변
+20 포인트

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

답변에 대한 댓글 3개

outer join 하니까 에러가 떠버리네요 ㅠㅠ
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}%'


[code]
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}%'
[/code]

이렇게 수정해보시면 어떨지 ㅎㅎ
where절의 b... 부분이랑 c...부분이 and라 그런게 아닌가요?

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

 

한번 확인해보시죠

답변을 작성하려면 로그인이 필요합니다.