친구들의 일정을 가져오되 현재 시간 기준으로 현재 시간보다 전의 일정들만 가져온다
내 아이디는 1이라고 가정
select u.nickname, s.content, s.date, s.isDone
from follow f
join schedule s
on f.followeeId = s.userId
join user u
on s.userId = u.id
where f.followerId = 1;
라고 작성하였는데
현재시간 보다 전의 일정들만
가져온다는 조건을 어디에 넣어야 할지 생각이 들지 않는다 이때는
select u.nickname, s.content, s.date, s.isDone
from follow f
join schedule s
on f.followeeId = s.userId
join user u
on s.userId = u.id
where f.followerId = 1 and s.date < now();
select u.nickname, s.content, s.date, s.isDone
from follow f
join schedule s
on f.followeeId = s.userId and s.date < now()
join user u
on s.userId = u.id
where f.followerId = 1;
where 조건에 and 하거나
join 조건에 and 하여도 가능하다
결과는 같다
-- 완료 여부를 체크하는 SQL(완료 했다)
update schedule
set isDone = 1
where Id = 438;
-- 완료 여부를 체크하는 SQL(완료 안했다)
update schedule
set isDone = 0
where Id = 438;
이 주문을 두개가 아니라 하나로 만들어보자
update schedule
set isDone = if (isDone = 0, 1 , 0 )
where Id = 438;
'MYSQL' 카테고리의 다른 글
MYSQL - db 전용 마스터계정 (0) | 2024.05.20 |
---|---|
MYSQL - like 문자열컬럼 fulltext (0) | 2024.05.20 |
MYSQL - 테이블 생성 - Unique (0) | 2024.05.17 |
MYSQL - 다중테이블 (0) | 2024.05.16 |
MYSQL - 이중테이블, foreign key, join( ) -left,right, cascade (0) | 2024.05.16 |