Mysqlの命令文作成で完全に詰まってしまって途方に暮れています。
添付画像にあるように、テーブルAのanwserの値とテーブルBのuser_answerの値が同じ場合に、テーブルBのanswer_flagを0から1に変更するというMYSQLの命令文を書きたいのですが、上手く行きません。。。
UPDATE tbl_quiz_log
SET answer_flag = 1
WHERE user_answer = ANY(
SELECT tbl_question.anwser
FROM tbl_question
INNER JOIN tbl_quiz_log ON tbl_quiz_log.question_id = tbl_question.question_id
)
何が間違っているのでしょうか?
どなたかお力をお貸し頂けませんでしょうか?
どうぞよろしくお願い致しますm(_ _)m
●補足
※1 キャプチャー画像のカラムは一部のカラムのみ表示している状態です。
※2 ちなみに、テーブルAのanswerがスペルミスなのは把握しております。
No.1ベストアンサー
- 回答日時:
>テーブルAのanwserの値とテーブルBのuser_answerの値が同じ場合に、テーブルBのanswer_flagを0から1に変更する
ご提示の命題と、サンプルの画像があってないですね
choice3が一致していますが、question_idが違うのでご提示のデータは1にはなりません
むしろ最終行のquestion_id=5のデータはchoice2なので合致します
やりかたはこう
UPDATE tbl_quiz_log as b
INNER JOIN tbl_question as a ON a.question_id = b.question_id
SET answer_flag = 1
WHERE a.answer=b.answer
No.2
- 回答日時:
UPDATE tbl_question INNER JOIN tbl_quiz_log ON (tbl_question.answer=tbl_quiz_log.user_answer) AND (tbl_question.question_id=tbl_quiz_log.question_id) SET tbl_quiz_log.answer_flag = 1;
こう?
たぶん、
tbl_questionのquestion_idとtbl_quiz_logのquestion_idが一致(つまり、問題番号が一致)
かつ
tbl_questionのanswerとtbl_quiz_logのuser_answerが一致(つまり、回答者の答えが正解と一致)
の時だけ
tbl_quiz_logのanswer_flagを1にする
が、質問者さんの希望する動作だと思うのだけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- 英語 【 論・表 英訳 】 問題 次の文を英訳せよ。 クラスの誰もその質問に答えられませんでした。 解答 4 2022/07/25 21:43
- 英語 正しい英文を教えてください。 2 2023/06/08 04:02
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- 英語 以下の英文の訳を教えて頂きたいです! The professor refused to answer 4 2023/01/16 13:40
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
select文のwhere句に配列を入れ...
-
SQL Left Join で重複を排除す...
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
sqlで、600行あるテーブルを100...
-
Data too long for column 'id'...
-
SQLサーバから、項目の属性(型...
-
insertを高速化させたい
-
inner joinをすると数がおかし...
-
エラー 1068 (42000): 複数の主...
-
同一テーブルの同一フィールド...
-
レコード数が増えすぎた場合の対処
-
SELECT文で片方のテーブルを優...
-
複数JOINしているとCOUNTが正し...
-
Postgreのupdateコマンドでエラー
-
INで抽出した順番に並び替え(S...
-
mysqlのdeleteのサブクエリーで...
-
ストアド内でカラム名一覧を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報