「テーブルの特定の項目を、別のテーブルを参照した値でupdateできない」問題で悩んでいます。
以下の2つのテーブルがある場合、
select * from TAB_A
COL001 COL002 COL003
------ ------ ------
00001 YYY DE
00002 YYY FG
00003 YYY HI
select * from TAB_B
COL001 COL002 COL003
------ ------ ------
00001 YYY ST
00002 YYY UV
00003 YYY WX
TAB_AのCOL01とCOL02 を条件に TAB_BのCOL03を検索して、TAB_AのCOL03を更新するために
update TAB_A set TAB_A.COL003 = (
select TAB_B.COL003
from TAB_A,TAB_B
where TAB_A.COL01 = TAB_B.COL01 and
TAB_A.COL02 = TAB_B.COL02 )
と、記述すると、
ORA-01427: 単一行副問合せにより2つ以上の行が返されます。
とのメッセージが表示される場合があります。
なにか良い解決策はあるでしょうか?
「SQLは、実はテーブルの特定の項目を、別のテーブルを参照した値でupdateできない」のだ、との噂も聞きますが....
なお、使用しているDBは Oracle10gです。
No.1ベストアンサー
- 回答日時:
相関問い合わせでの更新は、UPDATE対象の表の更新レコードに対応する1件を返す副問い合わせ文を
書かないといけないのですが、副問い合わせ文の中で、更新表をFROMに書いてしまうと、更新表と
無関係の副問い合わせを行ってしまいます。
update TAB_A set TAB_A.COL003 = (
select TAB_B.COL003
from TAB_B /* <============================注目 */
where TAB_A.COL01 = TAB_B.COL01 and
TAB_A.COL02 = TAB_B.COL02 )
のようにすれば、問題なく動作するかと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Oracle SQL update方法 2 2022/06/22 14:07
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- その他(コンピューター・テクノロジー) Pythonの np.indicesに関する質問です。 2 2023/02/07 08:19
- フリーソフト AutoHotKey 「Tabを押し続ける → 右クリックを押し続ける」は出来る?? 2 2023/05/05 14:36
- Visual Basic(VBA) Excel VBAシートの色を一気に変える方法 1 2022/03/27 23:24
- マウス・キーボード Tabキーとテンキーが右側にあるワイヤレスキーボード を探しています。 仕事上数字を入力することが多 3 2022/09/22 21:13
- その他(パソコン・スマホ・電化製品) Switch スマートフォンへ送る できない 1 2023/04/01 22:57
- 楽器・演奏 TAB譜について 5 2023/04/18 19:52
- モニター・ディスプレイ Win11マルチディスプレイでの異なる仮想デスクトップの表示 3 2023/02/01 10:02
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
UPDATE文のWHERE条件に他のテーブルのフィールドも入れたい
SQL Server
-
オラクルのUPDATEで複数テーブル
Oracle
-
はじめまして!
Oracle
-
-
4
CASE文のエラーについて
Oracle
-
5
PL/SQLでのTO_DATEの時間取得について
その他(プログラミング・Web制作)
-
6
NOT NULL制約がついた項目のUPDATEについて
Oracle
-
7
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
8
PL/SQL PLS-00103エラーについて
Oracle
-
9
sql*loader 数値のロード
Oracle
-
10
TO_CHARでのゼロ非表示について
Oracle
-
11
PL/SQLのコンパイルエラーについて(ignored)
Oracle
-
12
Oracleでの文字列連結サイズの上限
Oracle
-
13
PL/SQLで@ファイル名が反応しません
Oracle
-
14
キーが同じを複数行を1行にまとめるには?
Oracle
-
15
全角空白のTRIMができない・・・
Oracle
-
16
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
17
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
18
データを削除しても表領域の使用率が減りません
Oracle
-
19
INDEXの無効化
Oracle
-
20
SQLPLUSで結果を画面に表示しない
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
MERGE文を単体テーブルに対して...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
oracleの分割delete
-
unionの結果は集計はできないで...
-
固定値を含む結合と複数テーブ...
-
複数テーブルのMAX値の行データ...
-
外部結合とor条件混在の記述方法
-
結合と副問い合わせの違い
-
SQL GROUPで件数の一番多いレコ...
-
unionでマージした副問合せを結合
-
SQL文で質問です
-
集計後の数値が倍になる
-
select
-
他のテーブルを参照した値はupd...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
GROUP BYを使ったSELECT文の総...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
固定値を含む結合と複数テーブ...
-
MERGE文を単体テーブルに対して...
-
複数テーブルのMAX値の行データ...
-
他のテーブルを参照した値はupd...
-
外部結合とor条件混在の記述方法
-
oracleの分割delete
-
SQLの書き方(チェックボックス)
-
SET句内で複数の条件を指定して...
-
unionでマージした副問合せを結合
-
unionの結果は集計はできないで...
-
SQL GROUPで件数の一番多いレコ...
-
集計後の数値が倍になる
-
結合と副問い合わせの違い
-
DELETE 文とEXISTSの使い方につ...
-
マテビューのNOTNULL設定について
-
副問い合わせのinsert文
おすすめ情報