[pgsql-jp: 36983] Re: 副問い合わせを利用したUPDATE

ISHIDA Akio iakio @ mono-space.net
2006年 4月 12日 (水) 22:13:33 JST


こんにちは。石田@苫小牧市です。

06/04/12 に AOKI KAZUYUKI<aoki-kazuyuki @ nifty.com> さんは書きました:
> モード・エーの青木と申します。
>
> 副問い合わせを利用したUPDATE文を考えています。
> もう少しスマートに書きたいのですが、
> 何か良い方法はありますでしょうか?
>
> UPDATE tbl_true_data
> SET
> stateprov=(SELECT stateprov FROM tbl_web_data WHERE corporation_id = 777),
> cityname=(SELECT cityname FROM tbl_web_data WHERE corporation_id = 777),
> addressline=(SELECT addressline FROM tbl_web_data WHERE corporation_id =
> 777),
> bldgroom=(SELECT bldgroom FROM tbl_web_data WHERE corporation_id = 777),
> countryname=(SELECT countryname FROM tbl_web_data WHERE corporation_id =
> 777),
> WHERE corporation_id = 777
>
> 副問い合わせを1回の記述にしたいのですが、
> 可能でしょうか?

UPDATE文にはFROM句を指定できます。
この例だとおそらくこんな感じです。

UPDATE tbl_true_data
   SET stateprov = w.stateprov
     , cityname = w.cityname
...
  FROM tbl_web_data AS w
 WHERE corporation_id = w.corporation_id
   AND corporation_id = 777

>
> 以上
>
>
>


--
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>



pgsql-jp メーリングリストの案内