본문 바로가기

프로그래밍 언어/MySQL

[MySQL] 실습: 일정

반응형

 

스키마 생성: memo_app_dn

 

테이블 생성: 

테이블명 컬럼
users id email password name created_at
memo id user_id content todo_date is_completed
follow id follower_id followee_id created_at  

 

use memo_app_db;

select * from user;

insert into user
(email, password, name)
values
('abc@naver.com','ttnn1111','sally');

insert into memo
(user_id, content, todo_date)
values
(1,'김밥 먹으러 가자', '2022-05-20 11:45')
(2,'커피 마시면서 놀기', '2022-06-14 14:00')
(2,'맛있는 점심 먹으러', '2022-05-28 11:30')
(3,'개발 미팅', '2022-06-02 10:30');

insert into memo
(user_id, content, todo_date)
values
(3,'과제', '2022-05-10 15:30');

insert into follow
(follower_id,followee_id)
values
(3,2);

 

-- 내 일정 가져오는 sql

select * 
from memo
where user_id = 2
order by todo_date desc
limit 0,25; 

 

-- 일정 완료 여부 셋팅하는 SQL

update memo
set is_completed = 0
where id = 3;

select * from follow;

select * 
from memo m
join user u on u.id = m.user_id;

 

-- 친구 목록 가져오기

select *
from follow f
join user u 
on f.followee_id = u.id
where f.follower_id = 1
;

 

-- 나의 id는 1이다. 

-- 내 친구들인, 김나나와 Mike의 일정을 가져오는 SQL

select *
from user u 
join follow f on f.followee_id = u.id
join memo m 
on f.followee_id = m.user_id
;

-- > 쌤 풀이
select u.name, m.content, m.todo_date, m.is_completed
from follow f
join memo m 
on f.followee_id = m.user_id
join user u
on m.user_id = u.id -- 메모 작성한 사람의 id로, 유저 테이블을 갖다 붙임.
where follower_id = 1 and todo_date > now()
order by todo_date desc;



반응형