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

締切り済みの質問

update文の副問い合わせ使用

2つのテーブルを結合して、片方のテーブルをUpdateしたいが、Update文での結合方法がよくわかりません。

table_a の excode列が更新対象で、table_aのname列とtable_bのname列の等価結合です。

テーブルとデータの例は以下です。

テーブル1:table_a
create table table_a (code int(3), name varchar(10), excode int(6));
insert into table_a values (101,'あいう',0),(102,'かきく',0),(103,'たちつ',0),(201,'なにぬ',0),(301,'わをん',0);

テーブル2:table_b
create table table_b (excode int(6), name varchar(10));
insert into table_b values (500101,'あいう'),(500102,'かきく'),(500103,'たちつ');

期待する結果は以下です。

SQL> select * from table_a;
+------+--------+--------+
| code | name | excode |
+------+--------+--------+
| 101 | あいう | 500101 |
| 102 | かきく | 500102 |
| 103 | たちつ | 500103 |
+------+--------+--------+

MySQLバージョンは、5.0です。
よろしくお願いいたします。

投稿日時 - 2007-03-12 23:47:27

QNo.2827985

困ってます

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

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

回答(1)

ANo.1

update table_a a join table_b b on a.name=b.name
set a.excode=b.excode
;

で、出来ます。

投稿日時 - 2007-03-13 13:05:16