반응형
# 배경
기부, 기부상태, 기부영수증 3개의 테이블을 조인해서 기부날짜 보고 기부영수증 상태 업데이트 하기
# donations 테이블
id | member_id | donation_date | status | deleted_at |
회원아이디 | 기부날짜 | 기부상태 |
# statuses 테이블
id | status | receipt_available |
기부상태 | 기부영수증가능 |
# donor_receipts 테이블
donation_id | status |
기부영수증상태 |
# 문법
update [테이블명1] a inner join [테이블명2] b on a.[조인된컬럼] = b.[조인된컬럼]
set b.[컬럼명] = 변경할값
WHERE 조건;
# 예시
UPDATE donor_receipts
INNER JOIN donations on donor_receipts.donation_id = donations.id
INNER JOIN statuses on donations.status = statuses.status
set donor_receipts.status='Completed'
where donor_receipts.status='Applied'
and donation_date >= '20210101'
and donation_date <='20211231'
and receipt_available=true;
나는 3개의 테이블을 조인해서 업데이트 시켰다.
select 문에서 조인해서 검색하는 것처럼 하면 된다.
신입때 적어 놓은 기록!
반응형
'Study > Mysql' 카테고리의 다른 글
[MySQL] DB 용량 체크하는 쿼리 (0) | 2023.08.08 |
---|---|
[MySQL] update 할 때 나오는 에러 메시지 (0) | 2023.07.05 |
[MySQL] 테이블 복제하는 방법 (0) | 2023.07.04 |
[MySQL] 문자열 자르기 (0) | 2023.06.29 |
[MySQL] 컬럼 타입 변경하는 방법 (0) | 2022.11.24 |