프로젝트 정리/지역기반 모임 서비스

내가 속한 모임 가져오는 쿼리와 내가 속하지 않은 모임 가져오는 쿼리

문제점

Gather라는 테이블에서 u_id가 포함됐는지 여부로
내가 속한 모임과 그렇지 않은 모임에 해당하는 데이터를 가져와야 하는 상황이다.

 

유저 정보로 해당 회원이 생성한 모임이나 참가한 모임정보를 가져오는 쿼리
유저 정보(nickname)로 pk인 u_id를 select하고 select한 u_id가 포함되지 않는 일정 정보를 가져오는 쿼리
해당 일정 정보는 현재 시간보다 늦은 모임이어야 하고 지역 정보와 카테고리 정보가 변수와 같아야 한다.

 

다음 쿼리를 사용해서 해결하였다.

select * from gather g 
RIGHT join chatting c on g.g_id = c.gather_g_id
where c.user_u_id = (select u_id from user where nickname = '블리츠크랭크')
and g.enddate > now() 
and g.l_id = 20
and g.c_id = 150
order by g.g_id desc;

select * from gather where g_id
 NOT IN (select gather_g_id from chatting
 where user_u_id = (select u_id from user where nickname = '블리츠크랭크'))
 and enddate > now()
 and c_id = 22
 and l_id = 1
 order by g_id desc;