【Table1】
Col1 Col2
Aa A
Ab A
Ba B
Bb B
Ca C
Ca D
【Table2】(Data1は固定)
Data1 Data2
Aa A
Ab B→A
Ba C→B
Bb A→B
Ca B→C
Ca C
※Col1に重複がある場合、重複結果の1行目のレコードをData2に入れる
(今回の場合CをData2に入れる)
Data1は固定で、Table1を使ってData2を上記の様に修正するSQLが書けなくて困っています。
Col1が重複してない場合の修正するSQLを書いてみましたが(合っているかはわかりませんが...)、
重複する場合のSQLも追加して最終的に1つのSQLで、すべて修正できるようにしたいです。
update Table2 T2
set Data2=
(select Col2 from Table1
where Col1=
(select Col1 from Table1 T1
where T2.Data1=T1.Col1
group by T1.Col1
having count(T1.Col1)=1
)
)
わかりにくい部分もあると思いますが、ご教授お願いします。
No.1ベストアンサー
- 回答日時:
>※Col1に重複がある場合、重複結果の1行目のレコードをData2に入れる
の「1行目」の定義がハッキリ書かれていませんが、
例を見ると一番小さな値ということでいいのでしょうか。
それなら単純に、
UPDATE Table2 T2
SET Data2 =
(SELECT MIN(T1.Col2)
FROM Table1 T1
WHERE T1.Col1 = T2.Data1);
でいいのではないでしょうか。
ただ、このSQLだとTable1にTable2のData1と一致するデータがない場合は
NULLに更新されてしまうので気を付けてください。
もし、そういうデータが存在するのであれば
UPDATE文のWHERE句にEXISTS条件を書くようにしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データ
-
単一グループのグループ関数で...
-
SQL*Loader Append
-
AccessのSQL文で1件のみヒット...
-
group byの並び順を変えるだけ...
-
SELECT FOR UPDATE で該当レコ...
-
BLOB型項目をSQLの検索条件に指...
-
【PL/SQL】FROM区に変数を使う方法
-
デフォルトでデータが表示され...
-
トランザクションログを出力せ...
-
PL/SQL内の共通関数の引数にフ...
-
osqleditについて
-
「数字で始まらない」ものを抽...
-
複数レコードを横並び1レコー...
-
引数によってwhere句を切り替え...
-
1レコード全てを改行なしで表...
-
ワイルドカード検索として合致...
-
SQLで条件にヒットしたレコード...
-
GROUP BYを使用したCOUNT
-
レコードの更新履歴について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
group byの並び順を変えるだけ...
-
SQL*Loader Append
-
where句中のtrim関数について
-
AccessのSQL文で1件のみヒット...
-
SELECT FOR UPDATE で該当レコ...
-
データ
-
トランザクションログを出力せ...
-
SQLで条件にヒットしたレコード...
-
アクセスのレポートでレコード...
-
「数字で始まらない」ものを抽...
-
引数によってwhere句を切り替え...
-
1レコード全てを改行なしで表...
-
BLOB型項目をSQLの検索条件に指...
-
ACCESS レコードの並び順について
-
デフォルトでデータが表示され...
-
レコードの更新履歴について
-
osqleditについて
-
oracle DB内のデータを増幅す...
おすすめ情報