tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルSelectしながらUpdateをしたいのですが
記事No3909
投稿日: 2006/06/28(Wed) 13:11
投稿者松本
いつもお世話になっております。
過去ログやSQL構文などを色々と検索したのですが、どうしてもわからず、
投稿させて頂きました。

AというテーブルとBというテーブルがあります。テーブル構造は全く一緒です。
AのレコードのキーとBのレコードのキーが同じレコードの場合、
Aテーブルのそのレコードのフィールド1とフィールド2だけをBテーブルの対応するフィールドで
更新したいと思っています。

最初、OleDataReaderを使い
Aテーブルを全件参照し、その参照中にOleCommandでBテーブルから該当箇所を取得し
AテーブルをUpdateするロジックでしたが、OledataReaderを使っていると、
別のOleCommandは使えないようですのでエラーになってしまいました。

次にUpdate Aテーブル Select Bテーブルの様なSQLを作ったのですが、
一括更新ではなく、レコードごとに別の更新なのでバグでした。


Aテーブルの該当キーのみをBテーブルから取得する方法は
どうしたらよろしいのでしょうか。
Aテーブルの該当が1件では無く複数あります。

お忙しい中とは存じますがご教授をお願い致します。
引き続き自分でも調べてみます。

[ツリー表示へ]
タイトルRe: SelectしながらUpdateをしたいのですが
記事No3912
投稿日: 2006/06/28(Wed) 14:43
投稿者GOD
こんな書き方でいけるかな。(DBによってはどうだろう。)
UPDATE Table1 INNER JOIN Table2 ON Table1.Key=Table2.Key
SET Table1.Field1 = Table2.Field1, Table1.Field2 = Table2.Field2

[ツリー表示へ]
タイトルRe^2: SelectしながらUpdateをしたいのですが
記事No3924
投稿日: 2006/06/30(Fri) 12:00
投稿者松本
GOD様有難う御座います。

INNER JOIN を使えばいいのですね!
Googleでも色々検索したのですが、検索の言葉が思い当たらず、
「SQL構文 Select Update」などでやっていたのですが、
INNER JOINを探し出せませんでした。

今後の開発でもすごく役に立つご教授です。
本当に有難う御座いました。

[ツリー表示へ]