[MySQL] 서울에 위치한 식당 목록 출력하기

yejichoi·2023년 3월 14일
0

Database

목록 보기
16/31
post-thumbnail

서울에 위치한 식당 목록 출력하기

REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.

REST_INFO

REST_REVIEW

출력


풀이


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

INNER JOIN은 ON 절과 함께 사용되며, ON 절의 조건을 만족하는 데이터만을 가져옴
ON 절에서는 WHERE 절에서 사용할 수 있는 모든 조건을 사용 가능

1. 첫번째테이블이름

INNER JOIN 두번째테이블이름

ON 조건

2. 첫번째테이블이름

JOIN 두번째테이블이름

ON 조건

#JOIN === INNER JOIN === CROSS JOIN

- LEFT JOIN

첫 번째 테이블을 기준으로, 두 번째 테이블을 조합하는 JOIN
ON 절의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져옴

첫번째테이블이름

LEFT JOIN 두번째테이블이름

ON 조건

- RIGHT JOIN

LEFT 조인과는 반대로 두 번째 테이블을 기준으로, 첫 번째 테이블을 조합하는 JOIN
ON 절의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져옴

첫번째테이블이름

LEFT JOIN 두번째테이블이름

ON 조건

0개의 댓글