REST_INFO테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다.
MEMBER_PROFILE 테이블은 다음과 같으며
MEMBER_ID, 회원 ID
MEMBER_NAME, 회원 이름
TLNO, 회원 연락처
GENDER, 성별,
DATE_OF_BIRTH 생년월일
REST_REVIEW 테이블은 다음과 같으며
REVIEW_ID, 리뷰 ID
REST_ID, 식당 ID
MEMBER_ID, 회원 ID
REVIEW_SCORE, 점수
REVIEW_TEXT, 리뷰 텍스트
REVIEW_DATE, 리뷰 작성일
MEMBER_PROFILE와 REST_REVIEW테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요.
회원이름, 리뷰텍스트, 리뷰작성일이 출력되도록 작성해주시고, 결과는 리뷰작성일을 기준으로 오름차순 정렬해주세요.
SELECT B.MEMBER_NAME, C.REVIEW_TEXT, DATE_FORMAT(C.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM MEMBER_PROFILE B
INNER JOIN REST_REVIEW C
ON B.MEMBER_ID = C.MEMBER_ID
WHERE C.MEMBER_ID IN(---------------------------------
SELECT MEMBER_ID
FROM REST_REVIEW 최대 리뷰 횟수의 작성자 ID를 구함
GROUP BY MEMBER_ID
HAVING COUNT(MEMBER_ID) = ( ----
SELECT COUNT(MEMBER_ID) CNT
FROM REST_REVIEW 최대 리뷰 횟수를 구함
GROUP BY MEMBER_ID) A
) ----
)------------------------------------------------
ORDER BY REVIEW_DATE
* inner join
조인하는 테이블의 ON절의 조건이 일치하는 결과만 출력. join조건에서 동일한 값이 있는 행만을 반환한다.
A와 B의 교집합(서로 중복되는 값)을 보여준다,
SELECT A.xxx, B.yyy
FROM TABLE A INNER JOIN TABLE B
ON A.key = B.key
WHERE A.key = '111'
함축구문
SELECT A.xxx, B.yyy
FROM TABLE A, TABLE B
WHERE A.key = B.key and A.key = '111'
from절에 콤마만 쓰면 inner join으로 치부된다.
DATE_FROMAT
DATE_FORMAT(날짜, 형식): 날짜를 지정한 형식으로 출력
SQL
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS DATE
FROM DUAL