- - PR -
UPDATE文
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-04-22 18:29
お世話になってます。簡単な質問かと思いますが、お願いします。
javaでSQLを実行します。 UPDATEするとき、M001とM002のテーブルを使います。 UPDATE M001 SET M001.名前=M002.名前、 M001.年齢=M002.年齢 WHERE M001.住所=M002.住所 AND M001.貯金=M002.貯金; このSQL文を実行したいです。 まず、M002をselectで引っ張ってきて、 SELECT 名前、 年齢、 住所、 貯金 from M002; 引っ張ってきた各項目(名前、 年齢、 住所、 貯金)を、変数にいれて、 UPDATE文でその変数を使って実行すればいいのですか? 引っ張ってくる項目が多いときはどうしたらよいでしょうか? 1項目1変数定義してやるしかないのでしょうか。 |
|
投稿日時: 2006-04-22 19:03
細かいことは忘れましたので、回答はできませんが、とりあえず グーグルでJDBCを
キーワードに検索してください。 着手するまえにJDBCのこと調べましたか? |
|
投稿日時: 2006-04-23 15:50
ためしてはいませんが、以下のようなSQLではだめでしょうか。
UPDATE M001 SET (M001.名前, M001.年齢) =(SELECT 名前,年齢 FROM M002) WHERE M001.住所=M002.住所 AND M001.貯金=M002.貯金 Javaでぐるぐるまわすこともできると思いますが、DBMSでできる ことはそちらに任せたほうがよろしいのではないかと思います。 |
|
投稿日時: 2006-05-11 00:06
そんなに経験のない私が書き込んでもいいのかという不安もありますが…。
私もDBMSでやった方がいいような気がします。 やっぱり私も試していませんが、こんな感じかなぁと思います。 UPDATE M001 SET (M001.名前, M001.年齢) =(SELECT M002.名前,M002.年齢 FROM M002 WHERE M001.住所=M002.住所 AND M001.貯金=M002.貯金) WHERE EXISTS (SELECT * FROM M002 WHERE M001.住所=M002.住所 AND M001.貯金=M002.貯金) M001の住所と貯金が一致するM002の名前と年齢を抽出し、 M002の住所と貯金が一致するM001の名前と年齢に対し更新する 動かなかったらごめんなさい。 |
1