프로젝트 목록을 조회할때 좋아요 갯수와 로그인된 유저의 좋아요 여부를 알아내기.
상세 조회시 좋아요 여부 알아내기.
+제약 조건
-프로젝트당 회원은 단 1번만 찜을 할 수 있다.
-좋아요 여부 UPDATE로 찜을 취소할 수 있다.
-히스토리는 지우지 않는다.
-추가하자면 찜등록일, 찜수정일 추가 가능.
-- 프로젝트 목록 조회
SELECT
prj.PRJNO
, prj.TITLE
, prj.CONTENT
, (
SELECT
COUNT(*)
FROM
jobfavprj AS fav
WHERE
fav.PRJNO = prj.PRJNO
) AS COUNT
, (
SELECT
LIKEORNOT
FROM jobfavprj AS fav
WHERE MEMBERNO = 3 -- 멤버 번호 2
AND fav.PRJNO = prj.PRJNO
)AS LIKEORN
FROM
jobprjlst AS prj;
-- 상세조회 쿼리
SELECT
PRJ.TITLE
, PRJ.CONTENT
,(
SELECT
LIKEORNOT
FROM jobfavprj AS fav
WHERE MEMBERNO = 1 -- 멤버 번호
AND fav.PRJNO = prj.PRJNO
)AS LIKEORN
FROM
jobprjlst PRJ LEFT JOIN jobfavprj FAV
ON PRJ.PRJNO = FAV.PRJNO
WHERE 1=1
AND PRJ.PRJNO = 4; -- 게시글 번호
서브쿼리, 조인 어떤걸 써야할까?
우선은 주어진 과제 해결하는데 초점을 두었다.
더 알아보기
https://velog.io/@hth9876/SUBQUERY-%EC%99%80-JOIN-%EC%9D%98-%EC%B0%A8%EC%9D%B4