- ベストアンサー
SQLの書き方
T1(項目a&b) T2(項目c&d) というテーブルが存在しており、下記のような形でデータが存在しています。 T1 a | b ========== 1 | jj 2 | kk 3 | ll T2 c | d ========= 1 | a1 2 | a2 3 | a3 T1(a)とT2(c)で結合させて、b を d の値で書き換える場合は、どのように記述したら良いのかご教示下さい。 update T1 set b = 'ok' where a in ( select c from T2 where d = 'a2') というように、固定で項目を書き換える所までは出来たのですが、後一歩が上手くいきません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
勘でw UPDATE T1 SET T1.b = (SELECT T2.d FROM T2 WHERE T1.a = T2.c) WHERE EXISTS (SELECT 1 FROM T2 WHERE T1.a = T2.c);
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.2
RDBMSは、ここのカテゴリ通りSQL Serverですか? バージョンは? 自表を自己結合したり、他表を結合してのupdateは、RDBMSによる仕様差があります。 update t1 set b=y.d from t1 as x,t2 as y where x.a=y.c
質問者
お礼
どうも私の書き方が悪かったようですm(__)m じっくり記述しなおしたら出来ました。 >自表を自己結合したり、他表を結合してのupdateは、RDBMSによる仕様差があります。 そうなんですか。もっと勉強しないとダメですね。 ありがとうございました。
お礼
ありがとうございます。 色々試したのですが、ご回答頂いた方法では異常終了になるばかりで。 貼って頂いたURLを参考に、もう少し考えて見ます。m(__)m