人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQL文についての質問です。

表が二つあります。

★table1

no data

1 100
2 300

★table2

no data

1
123
200

UPDATE文を使用して

テーブル1と同じno数字がテーブル2にあった場合、テーブル2のdataの所に同じno数字のdataを持ってくるにはどのような命令文が必要でしょうか。

今回はno の値が 1 である場合を回答いただければと考えております。

お手数をおかけしますがよろしくお願いいたします。

※SQLはphp My admin を使用しております。


●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:PHP SQL 数字
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● miyamuko
●50ポイント ベストアンサー

これで同じ no のデータを table2 にセットできます。

no=1 に限定したい場合は WHERE の条件に table1.no = 1 を追加してください。

UPDATE table1, table2
 SET table2.data = table1.data
 WHERE table1.no = table2.no
◎質問者からの返答

ご回答ありがとうございます。


2 ● hu2
●23ポイント

以下で実行できるかと思います。

UPDATE table2 t2 SET

data = (SELECT data FROM table1 t1 WHERE t2.no = t1.no)

WHERE EXISTS (SELECT * FROM table1 t1 WHERE t2.no = t1.no)

/

◎質問者からの返答

ご回答ありがとうございます。


3 ● pahoo
●22ポイント

これで、どうでしょ。

update table1,table2 set table2.data=table1.data where table1.no=table2.no;
◎質問者からの返答

ご回答ありがとうございます。


4 ● chuken_kenkou
●22ポイント

すでに殆ど回答が出てしまってますが。。。

update table2,table1
 set table2.data=table1.data
 where table1.no=table2.no
 and table1.no=1

自表や他表を使ったupdate文は、RDBMSによる仕様差があるので、RDBMS名、バージョンを明記するようにしてください。

特にMySQLの場合、

  1. MySQL 4.0まで・・・union、一時表、一部のジョインは実装済
  2. MySQL 4.1・・・ジョインの拡張、サブクエリ、インラインビュー、unicodeなどの実装
  3. MySQL 5.0・・・ビュー表、ストアドプロシジャ、トリガなどの実装

と、すぐに思いつくだけでも、大きな機能拡張、一部の仕様変更があります。

◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ