프로그래머스 131124 그룹별 조건에 맞는 식당 목록 출력하기 MYSQL

sundays·2023년 5월 26일
0

문제

그룹별 조건에 맞는 식당 목록 출력하기

풀이

이 문제는 보통 서브쿼리를 사용하여 풀고 있는 것 같다.

  1. 서브 쿼리에서는 가장많이 리뷰를 남긴 사람을 구한다.
SELECT 
	MEMBER_ID
FROM
	REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
LIMIT 1
  1. 해당 서브 쿼리로 구한 리뷰를 남긴 사람의 리뷰를 조회한다
SELECT
	MEMBER_ID,
    REVIEW_TEXT,
    REVIEW_DATE
FROM
	REST_REVIEW
WHERE
	MEMBER_ID = (1번 서브 쿼리)
  1. 2번과 JOIN 하고 규칙에 맞게 order by를 사용한다
SELECT
	MEMBER_NAME,
    REVIEW_TEXT,
    REVIEW_DATE
FROM
	(2번 서브쿼리) AS A
JOIN
	MEMBER_PROFILE B
ON
	A.MEMBER_ID = B.MBMBER_ID
ORDER BY REVIEW_DATE ASC, REVIEW_TEXT ASC

전체 코드

SELECT
    B.MEMBER_NAME,
    A.REVIEW_TEXT,
    DATE_FORMAT(A.REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE
FROM
    (SELECT
        MEMBER_ID,
        REVIEW_TEXT,
        REVIEW_DATE
     FROM
        REST_REVIEW
     WHERE MEMBER_ID = (SELECT 
                            MEMBER_ID
                        FROM REST_REVIEW
                    GROUP BY MEMBER_ID
                    ORDER BY COUNT(*) DESC
                    LIMIT 1)
    ) AS A
JOIN
    MEMBER_PROFILE B
ON
    A.MEMBER_ID = B.MEMBER_ID
ORDER BY REVIEW_DATE ASC, REVIEW_TEXT ASC
profile
develop life

0개의 댓글