[解決済み] SQL UPDATE SET 1つのカラムが、異なるカラムで参照される関連テーブルの値と等しくなるようにする?
2022-08-15 05:42:20
質問
お分かりいただけたでしょうか?
クイズ番組のトラッキングデータのテーブルがあり、各行には...
QuestionID と AnswerID (それぞれについてテーブルがあります) です。バグのために、NULL に設定された多数の QuestionID がありましたが、関連する AnswerID の QuestionID は Answers テーブルにあります。
したがって、QuestionIDがNULLでAnswerIDが500だとすると、Answersテーブルに行ってAnswerID 500を見つけると、NULL値があるはずのQuestionIDのカラムが存在します。
だから基本的に私は、各NULL QuestionIDを、trackingsテーブル(書き込まれているNULL QuestionIDと同じ行)にあるAnswerIDのAnswersテーブルで見つかったQuestionIDと同じに設定したいのです。
どのように私はこれを行うのでしょうか?
UPDATE QuestionTrackings
SET QuestionID = (need some select query that will get the QuestionID from the AnswerID in this row)
WHERE QuestionID is NULL AND ... ?
一致するAnswerIDからQuestionIDを割り当てるようにするにはどうしたらいいのか分かりませんが...。
どのように解決するのですか?
update q
set q.QuestionID = a.QuestionID
from QuestionTrackings q
inner join QuestionAnswers a
on q.AnswerID = a.AnswerID
where q.QuestionID is null -- and other conditions you might want
更新を実行する前に、更新する結果セットが何であるかを確認することをお勧めします(同じクエリで、ただselectを使用)。
select *
from QuestionTrackings q
inner join QuestionAnswers a
on q.AnswerID = a.AnswerID
where q.QuestionID is null -- and other conditions you might want
特に、各回答IDが間違いなく1つだけ関連する質問IDを持っているかどうかを確認します。
関連
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] 最初の行への結合方法
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] 各グループの上位1行を取得
-
[解決済み] mysqldumpで特定のテーブルをスキップする
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] 項目xにアクセスできるように文字列を分割するにはどうすればよいですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] カラム名の変更 SQL Server 2008
-
[解決済み] SQL Serverには、.NETのMath.Maxのような2つの値を取るMax関数はありますか?
-
[解決済み] SQLでランダムな行を要求する方法は?
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?
-
[解決済み] VARCHARとCHARの違いは何ですか?
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する
-
[解決済み] 条件に基づいて別のテーブルのカラムでカラムの値を更新する [重複] 。