-- 화면을 보고, 데이터베이스 스키마를 설계하세요.
-- 화면에 필요한 SQL문을 작성하세요.
-- 회원가입 화면

INSERT into user (email,password,nickname)
values ('abc@mail.com','1234','홍길동');
-- 로그인 화면

SELECT *
FROM user
WHERE email ='fglover@howard.com';
-- 카페 리스트 화면
-- 카페 갯수는 20개씩 가져옵니다.


필요 컬럼: 카페이름, 주소, 설명, 평균별점
SELECT c.id ,c.name ,c.address, c.description , IFNULL(avg(r.rating),0) avg_rating
FROM cafe c
left join review r
on c.id =r.cafe_id
group by c.id
order by c.id
limit 0,20;
별점이 없는 카페도 있기때문에 ifnull 사용
-- 카페 상세 화면
-- 가정: 카페 아이디는 2이다.


SELECT c.id, c.name ,
concat(c.operating_days ,' ',SUBSTR( c.opening_hour,1,5) ,'-', SUBSTR( c.closing_hour ,1,5)) Operating_hours,
c.phone_number ,avg(r.rating), c.description
FROM cafe c
left join review r
on c.id =r.cafe_id
where c.id=2
group by c.id ;

SELECT u.id,u.nickname ,r.created_at ,r.content , r.rating
FROM cafe c
left join review r
on r.cafe_id =c.id
join `user` u
on u.id =r.user_id
where c.id=2
order by r.created_at desc;
-- 리뷰 작성 화면
-- 가정: 내 아이디는 1, 카페 아이디는 50, 1카페당 1개 리뷰만 남길 수 있다.

INSERT into review (user_id,cafe_id,rating,content)
values (1,50,4,'분위기 좋아요.');
-- 내가 작성한 리뷰 리스트 화면
-- 가정: 내 아이디는 1이다.


SELECT r.id ,r.cafe_id , c.name, r.created_at ,r.content ,r.rating
FROM review r
join cafe c
on c.id =r.cafe_id
where user_id=1
order by r.created_at desc;
-- 리뷰 수정화면
-- 내 아이디는 1, 카페 아이디는 50
UPDATE review
set rating =4, content = '분위기 좋긴 좋아요 '
where user_id =1 and cafe_id =50;