문제
MEMBER_PROFILE
와 REST_REVIEW
테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.
REVIEW_DATE
의 데이트 포맷이 예시와 동일해야 정답처리 됩니다.
💡 조건
sql 코드
SELECT member_profile.member_name, review.review_text,
date_format(review.review_date,"%Y-%m-%d") review_date
FROM rest_review as review join
(SELECT member_id
FROM rest_review
GROUP BY member_id
ORDER BY count(*) DESC LIMIT 1) as id
on id.member_id = review.member_id
join member_profile ON id.member_id = member_profile.member_id
order by review.review_date, review_text
가장 많은 리뷰를 작성한 회원의 리뷰를 조회하는건데 조회해보면 한사람이 아니다. 리뷰 3개가 가장 많은데 그게 세사람;; 그 중 한명만 조회하면 됨. 음^^? 수정이 필요한거 아닌가?
FROM rest_review as review join
(SELECT member_id
FROM rest_review
GROUP BY member_id
ORDER BY count(*) DESC LIMIT 1) as id
on id.member_id = review.member_id
join member_profile ON id.member_id = member_profile.member_id
from절에서 리뷰 테이블에서 가져온 id와 같은 id의 멤버 프로필도 가져온다. 덕분에 join 두번하는 법 배움
SELECT member_profile.member_name, review.review_text,
date_format(review.review_date,"%Y-%m-%d") review_date
어떤 테이블에서 가져올건지 명시해서 조회해주고, 날짜 포맷도 맞춰준다.
order by review.review_date, review_text