• 締切済み

同一テーブルのUpdateについて

表Aに対して、2件目(No1-SubNo2)と3件目(No1-SubNo3)のデータに対して、1件目のtype 「a」を2件目と3件目のtypeに入れたいのですがどのようにUpdateを行えばよいでしょうか? 下記が、更新前、更新後の表のイメージです。 ご教授よろしくお願いいたします。 (更新前:表A) No SubNo type ------------------------ 1   1   a 1   2    1   3 2   1   b 2   2 2   3 (更新後:表A) No SubNo  type ------------------------ 1   1   a 1   2   a 1   3   a 2   1   b 2   2   b 2   3   b

みんなの回答

回答No.1

この辺の操作は、RDBMSによる違いがあるところです。 RDBMS名とバージョンを、明記してください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • UPDATE文でこのような更新はできますか?

    (TBL_A) A1  A2 ----------- 1  100 2  200 3  300 4  400 5  500 (TBL_B) B1  B2 ----------- 1  100 3  300 4  400 上記のようなテーブルAとBがあったとして 次のようなUPDATE文を実行することはできますか? できない場合、SQL1発で更新する他の方法はありますでしょうか? UPDATE TBL_A A SET A.A1 = A.A1 + B.B1 A.A2 = A.A2 + B.B2 WHERE EXISTS (SELECT 'X' FROM TBL_B B WHERE A.A1=B.B1) 【更新後のTBL_A表】 A1  A2 ----------- 1  200 <= (*)更新される 2  200 3  600 <= (*)更新される 4  400 5  1000 <= (*)更新される 【やりたいこと】 TBL_A表のA2列のデータにTBL_B表のB2列のデータを加算したい。 その場合の更新条件として「A1がB1に存在している場合のみ」という条件を加えたいのです。 すいませんが、よろしくおねがいします。

  • 別のテーブルの値でUPDATEしたいのですが

    Oracle8iデータベースのSQL文で困っています。 以下のような2つの表があります。 ※表の構成は似ていますが、同じではありません。 [表A]  列1 ・・・ 主キー  列2 ・・・ 主キー  列3  列4 [表B]  列1 ・・・ 主キー  列2 ・・・ 主キー  列3  列4 表Aと表Bの主キーが一致するデータについて、 表Aを表Bの値でUPDATEしたいのですが、 どのように記述すればよいでしょうか? よろしくお願いします。

  • SQL 複数テーブルのupdate

    こんばんは。 複数テーブルの複数カラムをupdateしたいのですが、 うまくいかず困っています。 どなたか助けてください>_< テーブルA(tableA)のoptionAというカラムと、 テーブルB(tableB)のoptionBというカラムを両方更新したいんです。 やりたい内容のイメージとしてはこんな感じです↓ update tableA a, tableB b set a.optionA='OK', b.optionB='OK' where a.student_id=b.student_id and a.name='山田'; どなたかご指導お願いいたします。

  • 1テーブル&複数レコードの更新に対して1度のupdate文での処理方法

    1テーブル&複数レコードの更新に対して1度のupdate文での処理方法 Delphi2010+SQL SERVER 2005で開発しています。 update文で、 現在下のようにwhileで複数レコードに対して、 1回、1回、sqlを発行して、更新しています。 これを、一度のSQLの発行で処理できないものでしょうか? 更新テーブルは1つで、更新する項目も同じです。 更新するデータと、where句の条件が異なります。 もし可能なようでしたら、どうかご教授お願いします。 update table set A=1,B=2 where id=1 update table set A=2,B=3 where id=5 update table set A=9,B=99 where id=7 update table set A=5,B=10 where id=15 update table set A=1,B=10 where id=75

  • 外部キーが設定されているテーブルのupdateについて

    PostgreSQL8.24を利用しています。 pgADMINIIIでテーブルを作成しました。 【TABLE_A】と【TABLE_B】があります。 【TABLE_A】の【ID】が【TABLE_B】の【ID2】が外部キーとして設定してあります。 CONSTRAINT TABLE_B_fkey FOREIGN KEY (ID2) REFERENCES TABLE_A (ID) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION 上記のように記述されています。 SQL文のUPDATEを使い、IDが「01」を「05」に更新したいのですが、 以下のように記述するとエラーになります。 どのようなUPDATE文を記述すればよろしいのでしょうか。 UPDATE TABLE_A INNER JOIN TABLE_B on TABLE_A.ID=TABLE_B.ID2 SET TABLE_A.ID = '05',TABLE_B.ID2 = '05' WHERE TABLE_A.ID='01'" よろしくお願いいたします。

  • 2つのテーブルのupdate

    AtableというテーブルとBtableというテーブルのTypeフィールドをupdateする場合、テーブルが異なるごとにmysql_queryを使っているのですが、この場合、ひとつにまとめられないものでしょうか? このような使用方法が通常ですか? よろしくお願い致します。 $ASQL = "update Atable set Type = 1 where id = $a"; $BSQL = "update Btable set Type = 1 where id = $b"; mysql_query($ASQL); mysql_query($BSQL);

  • UPDATEで困っています

    下記の2つの表があり、 表Aから伝票番号毎に集計したTAXで、 同じ伝票番号をもつ表BのTAXを、一括更新しようと考えています。 表Bについては、伝票番号の中で最小の明細番号の行のみ 更新しなければなりません。 SQL-SERVERでは、下記のSQLでどうやら大丈夫そうなのですが、 Oracleでは、更新どころかエラーが発生してしまい、 途方に暮れています。 どなたか、ご教授頂けないでしょうか? よろしくお願い致します。 update B set 税額 = AA.税額合計 from B inner join (select 伝票番号, min(明細番号) as 最小明細番号   from B group by 伝票番号) as BB on BB.伝票番号 = B.伝票番号 and BB.最小明細番号 = B.明細番号 inner join (select 伝票番号, sum(税額) as 税額合計 from A group by 伝票番号) as AA on AA.伝票番号 = B.伝票番号 (表A) ・伝票番号 ・明細番号 ・TAX (表B) ・伝票番号 ・明細番号 ・金額 ・TAX

  • UPDATE文のWHERE条件に他のテーブルのフィールドも入れたい

    SQL文についてです。 表Aで列1と列2が'◎'のものについて、列3,列4,列5をそれぞれ'○','△','×'に更新したい場合は下記でOKだと思います。 UPDATE 表A SET 列3 = '○', 列4 = '△', 列5 = '×' WHERE 列1 = '◎' AND 列2 = '◎' 列1と列2をキーとして表Aと結合できる表Bが存在するとします。 条件に表Bの列6が'□'だった場合を追加したい時、どのような方法で行えば良いのでしょうか? 内部結合やWHERE EXISTSなどをいろいろ調べたのですが、SQL文に慣れていないためかうまくいきません。 初歩的な質問で申し訳ありませんが過去質問で参考になるものがなかったのでお願いします。

  • UPDATE文で複数列を更新したい

    下記のデータ3つを旧から新へ、一度に更新するにはどうすればいいですか? HONKAN_DATA内 KAIGI_DATAを変更するとします。 旧      新 会議室 A01 会議室 A02 会議室 B01 会議室 B02 会議室 C01 会議室 C02 UPDATE HONKAN_DATA SET・・・ この続きをどう書いていけばいいか3つ同時に更新されるのでしょうか? 教えてください

    • ベストアンサー
    • MySQL
  • 2テーブル間でフィールドの更新、1回のUPDATEでできますか?

    いろいろ調べたけど、わからなかったので質問します。 A表 キー、日付 10,NULL 20,NULL 30,NULL B表 キー、日付 10,20040905 30,20040906 40,20040907 Oracle(8.1.7)上に上記のような2つの表があり、A表と、B表でキーが同じだった場合、B表の日付をA表の同じキーの日付フィールドに更新する方法はありますか?(下のような結果になりたい) A表 キー、日付 10,20040905 20,NULL 30,20040906 1回のSQL文で更新することはできるのでしょうか? できるのであれば、教えていただきたいと思います。