join 질문 드립니다.
본문
select a.mb_id, b.mb_id, a.mb_name, b.wr_name
from g5_member a
left outer join
g5_write_bbs b
ON a.mb_id = b.mb_id
where wr_29 between '2022-05-01' and '2022-05-30'
group by a.mb_id
회원테이블과 게시판을 조인해서
게시판에 글을 작성하지 않은 회원도 출력하고 싶습니다.
날짜를 넣으면 해당 게시판에 글을 작성한 회원만 나오고 있습니다.
날짜 검색을 해도 글을 작성하지 않은 회원까지 나오게 할려면 어떻게 수정해야 하나요?
예) 회원이 200명이고 bbs에 작성자가 50명이여도 200명 모두 나오게 하고 싶습니다.
날짜 검색은 반드시 필요합니다.
!-->답변 3
select a.mb_id, b.mb_id, a.mb_name, b.wr_name
from g5_member a
left outer join
g5_write_bbs b
ON a.mb_id = b.mb_id
and b.wr_29 between '2022-05-01' and '2022-05-30'
group by a.mb_id
SELECT a.mb_id, b.mb_id, a.mb_name, b.wr_name
FROM g5_member a
LEFT JOIN
g5_write_request b
ON a.mb_id = b.mb_id
UNION
SELECT a.mb_id, b.mb_id, a.mb_name, b.wr_name
FROM g5_member a
RIGHT JOIN
g5_write_request b
ON a.mb_id = b.mb_id
WHERE b.wr_29 BETWEEN '2022-05-01' AND '2022-05-30'
GROUP BY a.mb_id
!-->
select a.mb_id, a.mb_name, b.wr_name,
sum(case when b.wr_29 between '2022-05-01' and '2022-05-30' then 1 else 0 end) as cnt
from g5_member a
left outer join g5_write_bbs b ON a.mb_id = b.mb_id
group by a.mb_id, a.mb_name, b.wr_name
답변을 작성하시기 전에 로그인 해주세요.