• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サブクエリでのアップデート(MySQL5.5))

サブクエリでのアップデート(MySQL5.5)のエラーについて

このQ&Aのポイント
  • MySQL5.5でサブクエリを使用してテーブルのアップデートを行いたいと考えていますが、エラーが発生しています。
  • テーブルに事前に記載された数値を使用してべき乗の数値を挿入するために、サブクエリを使用しています。
  • しかし、SQLの文法エラーが発生しており、エラーメッセージによると、派生テーブルごとにエイリアスを設定する必要があるとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • NNori
  • ベストアンサー率22% (377/1669)
回答No.3

No.1です。 いえいえ、単に結果だけほしいならば、 update baken set bekijyo=POW( 2, umaban ); です。

tajix14
質問者

お礼

有難うございました。 大変助かりました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

bakenテーブルとcbf_today_bakenテーブルの相関関係がよくわかりません 単純にbakenテーブルのumabanが11未満ならbekijyoを2のumaban乗にしたいだけならこんな感じ? create table baken(umaban int not null,bekijyo int null,name varchar(20)); insert into baken values(1,NULL,'HOTARUNOHIKARI'),(2,NULL,'MADONOYUKI'),(3,NULL,'OPPEKEPE'),(4,NULL,'KOTARO'),(10,NULL,'hoge'),(11,NULL,'fuga'); update baken set bekijyo=POW( 2, umaban ) where umaban<11;

tajix14
質問者

お礼

有難うございます。 出来ました。 難しく考えすぎたようです。 本当にありがとうございました。

  • NNori
  • ベストアンサー率22% (377/1669)
回答No.1

ちょっと複雑なのでよう読み切れません。 で、思ったのですが、UPDATEの構文は、 UPDATE テーブル名 set フィールド名=(セットしたい値) となってなきゃいけないのに、(セットしたい値)を作るところで、テーブル名のbakenのフィールドが条件に出てきてないように見えます。 つまり、(セットしたい値)が複数返ってきてしまってませんか?

tajix14
質問者

お礼

bekijyo=(SELECT uma_code FROM という形で、ひとつだけ抽出したつもりでした。 複数は返ってきていないと思います。 今回は、他の方が、大変シンプルな方法での対応策をご教授くださいました。 お時間を取って頂き本当にありがとうございました。 深く御礼申し上げます。

関連するQ&A