あなたの「必」の書き順を教えてください

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以下が同じなのでもうちょっとスマートに短く記述する方法はあるんでしょうか?

A 回答 (1件)

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;
    • good
    • 0
この回答へのお礼

ありがとうございます。

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

お礼日時:2006/08/24 17:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報