SQL Fiddle選択MariaDBにおける未解決の複数の選択肢の質問のいずれかの/ MySQLの
は、私は、複数の選択肢の質問のいずれかを取得したい(バイオリンは本当に私に動作していない)が避難所」 IDが99
のユーザーが回答しました。彼は質問0121の代わりにchoice id
を格納するuser_answer
のテーブルに見られるように、ただ1つの質問、つまりA question
に答えました。
私の予想結果はこのようにする必要があり、次のSQLで
Question Question_id Choice_id Choice
B question 2 3 B choice 1
B question 2 4 B choice 2
それとも
C question 3 5 C choice 1
C question 3 6 C choice 2
C question 3 7 C choice 3
、私はその選択肢
とちょうどどちらかBかCの質問をフェッチトラブルを抱えていますSELECT q.question_id,q.question,qc.choice,qc.choice_id
FROM question_choice qc
INNER JOIN question q ON q.question_id = qc.question_id
WHERE qc.question_id NOT IN
(SELECT question_id
FROM user_answer ua
INNER JOIN question_choice qc ON qc.choice_id = ua.choice_id
WHERE ua.user_id = 99)
GROUP BY qc.choice_id
ORDER BY q.question_id;
私はlimit clause
に何を入れて、ただ1つのunaさまざまな選択肢のある質問とnswered質問。
表:
CREATE TABLE question
(question_id INT, question VARCHAR(100));
CREATE TABLE question_choice
(question_id INT, choice_id INT,choice VARCHAR(100));
CREATE TABLE user_answer
(user_id INT,choice_id INT);
INSERT INTO question (question_id,question)
VALUES
(1,"A question"),
(2,"B question"),
(3,"C question");
INSERT INTO question_choice (choice_id,choice,question_id)
VALUES
(1,"A choice 1",1),
(2,"A choice 2",1),
(3,"B choice 1",2),
(4,"B choice 2",2),
(5,"C choice 1",3),
(6,"C choice 2",3),
(7,"C choice 3",3);
INSERT INTO user_answer(user_id,choice_id)
VALUES
(99,2);
Matt、ありがとう。私は答えられていない質問だけのいずれかが必要ですが、あなたのSQLは答えられていない質問のすべてを取得しています。 – RedGiant
いいえ問題LIMIT 1を追加し、質問をどのように選択するかによって注文します。あなたはいつも、それが無回答の無作為の最初の一意のidであることを望んでいますか?質問のみ、または選択肢もありますか? – Matt
申し訳ありません私自身の質問に答えてLIMIT1を行い、それをquestion_choiceテーブルに戻して選択肢を取得してください。回答が更新されます。 – Matt