테이블 두개를 이용하여 update를 일괄적으로 적용하고 싶습니다.
만약 update할 테이블이(staff)
table : staff
년도 | 학기 | 고유번호 | 이름 | 취미 | 특기 |
2019 | 2 | 1234567 | 홍길동 | 독서 | 자전거 |
2019 | 2 | 9876543 | 이순신 | 게임 | 컴퓨터 |
2019 | 2 | 7777999 | 김유신 | 농구 | 배구 |
아래 테이블에서(hobby) 년도,학기,고유번호에 따라 취미,특기칼럼만 update하고싶습니다.
table : hobby
년도 | 학기 | 고유번호 | 취미 | 특기 |
2019 | 2 | 1234567 | 등산 | 정리정돈 |
2019 | 2 | 9876543 | 영화감상 | 축구 |
2019 | 2 | 7777999 | 당구 | 탁구 |
감사합니다.
-- 1. 서브쿼리 UPDATE staff m SET (취미, 특기) = (SELECT 취미, 특기 FROM hobby s WHERE s.년도 = m.년도 AND s.학기 = m.학기 AND s.고유번호 = m.고유번호 ) WHERE EXISTS (SELECT 1 FROM hobby s WHERE s.년도 = m.년도 AND s.학기 = m.학기 AND s.고유번호 = m.고유번호 ) ; -- 2. 조인 뷰 UPDATE (SELECT m.취미 , m.특기 , s.취미 AS 새취미 , s.특기 AS 새특기 FROM staff m , hobby s WHERE s.년도 = m.년도 AND s.학기 = m.학기 AND s.고유번호 = m.고유번호 ) SET 취미 = 새취미 , 특기 = 새특기 ; -- 3. 머지 MERGE INTO staff m USING hobby s ON ( s.년도 = m.년도 AND s.학기 = m.학기 AND s.고유번호 = m.고유번호 ) WHEN MATCHED THEN UPDATE SET 취미 = s.취미 , 특기 = s.특기 ; -- http://gurubee.net/article/79308