select 결과를 update하는 방법은 여러가지가 존재합니다.

Set Subquery

set 절에 subquery로 쿼리 결과를 update할 수 있습니다. 이 방법의 단점은 쿼리 결과가 0~1개 일때만 유효합니다. 만약 쿼리 결과가 1개 이상 나올 경우 에러가 납니다.

 

 

 

UPDATE [테이블명]
SET (컬럼, 컬럼1, ...) = (값, 값1, ... ) 
[WHERE conditions];

-- 예시
update test
set (pk, id, name) = (select pk, id, name from test1 where pk = 1) -- 만약 해당 서브쿼리의 조회결과 갯수가 2개 이상일 시 에러

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

 

From Subquery

이 방법은 from절에 subquery를 넣어 사용하는 방법입니다. set절에 subquery를 사용하는 것과는 다르게 쿼리결과가 2개 이상나와도 업데이트를 할 수 있습니다. 단 업데이트를 해야하는 컬럼은 set절에 전부 명시해야합니다.(귀찮)

update [테이블명]
set [업데이트할 컬럼] = [업데이트 값]
from [테이블명]
where [조건]
 
 
--예시
update test
    set count = test.count + a.count
    from (select * from test1) as a
    where test.pk = a.pk
 
-- test테이블 내 pk와 test1 테이블 내 pk 가 같은 데이터에만 count를 추가해줌
-- 조인도 가능
 

[출처] https://brownbears.tistory.com/179

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED