
テーブルに事前に記載された数値を用い、べき乗の数値の挿入(アップデート)をしたいと考えています。
***********************************************
やりたいこと
***********************************************
テーブル baken
umaban___bekijyo___name
1_______NULL____ HOTARUNOHIKARI
2_______NULL____ MADONOYUKI
3_______NULL____ OPPEKEPE
4_______NULL____ KOTARO
これをUPDATEして、bekijyo欄に「2のumaban乗」の数値を挿入する。
umaban___bekijyo___name
1_________2_____ HOTARUNOHIKARI
2_________4_____ MADONOYUKI
3_________8_____ OPPEKEPE
4________16_____ KOTARO
************************************************
まずは、べき乗を求めるために下記のSELECT文を作成したところうまくいきました。
SELECT uma_code,umaban FROM (SELECT POW( 2, umaban ) AS uma_code,umaban FROM cbf_today_baken WHERE umaban<'11') AS temp1
umaban___uma_code___
1_________2_____
2_________4_____
3_________8_____
4________16_____
あとは、上記の2つをくっ付けるだけです。
UPDATE baken SET bekijyo=(SELECT uma_code FROM
(SELECT uma_code,umaban FROM (SELECT POW( 2, umaban ) AS uma_code,umaban FROM cbf_today_baken WHERE umaban<'11') AS temp1)
WHERE cbf_today_baken.umaban=temp1.umaban)
上記でアップデート可能と思われましたが、エラーになります。
#1248 - Every derived table must have its own alias
どこに誤りがあるのかご教授頂けましたら幸いです。
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;
No.1
- 回答日時:
ちょっと複雑なのでよう読み切れません。
で、思ったのですが、UPDATEの構文は、
UPDATE テーブル名 set フィールド名=(セットしたい値)
となってなきゃいけないのに、(セットしたい値)を作るところで、テーブル名のbakenのフィールドが条件に出てきてないように見えます。
つまり、(セットしたい値)が複数返ってきてしまってませんか?
bekijyo=(SELECT uma_code FROM という形で、ひとつだけ抽出したつもりでした。
複数は返ってきていないと思います。
今回は、他の方が、大変シンプルな方法での対応策をご教授くださいました。
お時間を取って頂き本当にありがとうございました。
深く御礼申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「テーブルに座って……」という...
-
オーダーの覚え方について
-
Excelのテーブルでmatch関数の...
-
特定物と不代替物の違い
-
男性と2人で飲食店に行きテーブ...
-
コンボボックスにレコードセッ...
-
テーブル名の前のドットの意味
-
ACCESS 社内ネットワークで、テ...
-
時給の変更に対応する方法
-
【エクセル】データテーブルの...
-
SQLの作り方
-
SQLです!!教えてください。あ...
-
複数テーブルが絡む複雑なUPDAT...
-
SQLのSELECT結果を縦...
-
別テーブルにIDが存在しないレ...
-
面接のときテーブルが正面に。...
-
会社の飲み会の幹事になり、座...
-
人の前を通る場合について
-
【MySQL】1対1でテーブルをあ...
-
下記、問題に対しての解答が以...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「テーブルに座って……」という...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
テーブルリンク リンク元を知...
-
オーダーの覚え方について
-
下記、問題に対しての解答が以...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
【エクセル】データテーブルの...
-
L2SWはARPテーブルを持っている?
-
面接のときテーブルが正面に。...
-
男性と2人で飲食店に行きテーブ...
-
UTF8のテーブルをODBCドライバ...
-
お金持ちのテーブル
-
1つのテーブルに同じデータを参...
-
テーブル名の前のドットの意味
-
複雑なSQL文について
-
データベースの接続に失敗して...
-
【PHP】SQL文のSUM関数で出力し...
-
更新されたテーブルを表示したい
おすすめ情報