こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SELECTを含むUPDATEについて

2つののテーブルがあり、テーブル1のデータを元にテーブル2を更新させたい場合、SELECT文を含むUPDATE文で更新出来ると思うのですが、どのようにしたら一番効率的でしょうか?


例)テーブル1~table1
nokencity
----------------------------------
01北海道根室
03青森八戸
05千葉柏
08埼玉さいたま
09東京千代田区

例)テーブル2~table2
nokencity
----------------------------------
01
02
03
04
05
06
07
08
09

テーブルが2つあり、テーブル1の情報を元にテーブル2を更新したい。
条件は、noが一致していること。

A) kenを更新するには、

UPDATE `table2`
SET ken = (SELECT ken from table1
WHERE table1.no = table2.no)


B) kenとcityを更新するには、

UPDATE `table2`
SET ken = (SELECT ken from table1
WHERE table1.no = table2.no),
city = (SELECT city from table1
WHERE table1.no = table2.no)

SELECT以下が同じなのでもうちょっとスマートに短く記述する方法はあるんでしょうか?

投稿日時 - 2006-08-23 12:31:59

QNo.2357031

困ってます

質問者が選んだベストアンサー

MySQLは機能サポートが盛んに行われているので、質問する場合はバージョンを書いてください。

MySQL 4.0.4以降なら、以下の書き方ができます。

update table2 as t2,table1 as t1
set t2.ken=t1.ken,t2.city=t1.city
where t1.no=t2.no;

投稿日時 - 2006-08-23 12:49:59

お礼

ありがとうございます。

as を使えばいいんですね。上手くいきました。
MySQLのバージョンは、5.0を使用しています。

投稿日時 - 2006-08-24 17:13:16

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問