서울에 위치한 식당 목록 출력하기
REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.
SELECT A.REST_ID, B.REST_NAME, B.FOOD_TYPE, B.FAVORITES, B.ADDRESS,
ROUND(AVG(A.REVIEW_SCORE),2) AS SCORE
FROM REST_REVIEW A
JOIN REST_INFO B ON A.REST_ID = B.REST_ID
GROUP BY A.REST_ID
HAVING B.ADDRESS LIKE '서울%'
ORDER BY SCORE DESC, B.FAVORITES DESC
#----
select a.rest_id, a.rest_name, a.food_type, a.favorites,a.address,
ROUND(AVG(b.REVIEW_SCORE),2) AS SCORE
from rest_info as a
join rest_review as b on a.rest_id = b.rest_id
group by a.rest_id
having a.address like '서울%'
order by SCORE desc, a.favorites desc
JOIN
데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현
INNER JOIN은 ON 절과 함께 사용되며, ON 절의 조건을 만족하는 데이터만을 가져옴
ON 절에서는 WHERE 절에서 사용할 수 있는 모든 조건을 사용 가능
1. 첫번째테이블이름
INNER JOIN 두번째테이블이름
ON 조건
2. 첫번째테이블이름
JOIN 두번째테이블이름
ON 조건
#JOIN === INNER JOIN === CROSS JOIN
첫 번째 테이블을 기준으로, 두 번째 테이블을 조합하는 JOIN
ON 절의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져옴
첫번째테이블이름
LEFT JOIN 두번째테이블이름
ON 조건
LEFT 조인과는 반대로 두 번째 테이블을 기준으로, 첫 번째 테이블을 조합하는 JOIN
ON 절의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져옴
첫번째테이블이름
LEFT JOIN 두번째테이블이름
ON 조건