UPDATE a
SET <update target column of a> = <value>
FROM
<update target table> a,
<join target table > b
where
a.<column> = b.<column>;
ps.
In Oracle
update table a
set column = (select value from table b where a.<column> = b.<column>)
where
<boundary condition>;
[출처] http://sowhat.tistory.com/42
----------------------------------------------------------------------------------
> 하진홍 님이 쓰신 글
> ----------------------------------------------------------
> update문다음에 From 을 쓸수 있나요. 잘 모르겠는데 좀 더 자세히 설명 부탁드려요
>
> > 철 님이 쓰신 글
> > ----------------------------------------------------------
> > from 을 사용 하세여..
> > SQL 책이 있으시면 from 을 사용 하는 것이 나올 겁니다..
> > 그럼 from절에서 알리아스를 하면 되겠져... ^^
> >
> > > 하진홍 님이 쓰신 글
> > > ----------------------------------------------------------
> > > UPDATE ACC107 a
> > > SET a.last_amt = (SELECT b.last_amt
> > > FROM ACC106 b
> > > WHERE b.acc_date = '2000-10-01'
> > > AND b.acc_unit = a.acc_unit
> > > AND b.acct_code = a.acct_code)
> > > WHERE a.acc_date = '2000-10-31'
> > >
> > > 상기문장은 'acc107 a' 때문에 오류가 발생합니다. Update문뒤의 table에서는
> > alias
> > > 를 사용할수 없는 것인지? 만약 사용할수 없다면 위 문에서 acc106과 acc107의 필
> 드
> > 이
> > > 름이 같은데 비교할수 없는 건지 좀 알려주세요.
> > > 그럼 좋은 하루 되세요.
> >
>
아래와 같이 변경해서 한번 사용해보세요...
UPDATE ACC107
SET last_amt = b.last_amt
FROM ACC107 a , ACC106 b
WHERE a.acc_date = '2000-10-31'
AND a.acct_code = b.acct_code
AND b.acc_date = '2000-10-01'
AND b.acc_unit = a.acc_unit
[출처] http://sqler.pe.kr/web_board/view_list.asp?id=13484&read=164&pagec=&gotopage=3508&block=0&part=MyBoard1