0
SELECT DISTINCT q.QuestionContent, o.OptionType, q.NoofAnswers, GROUP_CONCAT(DISTINCT Answer ORDER BY Answer SEPARATOR '') AS Answer, r.ReplyType, 
q.QuestionMarks
FROM Answer an 
INNER JOIN Question q ON q.QuestionId = an.QuestionId
JOIN Reply r ON q.ReplyId = r.ReplyId 
JOIN Option_Table o ON q.OptionId = o.OptionId 

上記のクエリは、いくつかの結果を表示するはずなのに、空の結果セットを表示しています。それぞれの個別の質問を表示することを想定しています(これが意味するのは、すべての列でまったく同じデータを含む重複行がないように、行を明確に表示する必要があるということです)誰でもクエリを修正して、必要な結果を出力できますか出力?以下に表を示します。

セッション テーブル:

SessionId  SessonName
3          ANDES

質問表:

QuestionId  SessionId   QuestionNo  QuestionContent       NoofAnswers   ReplyId     QuestionMarks   OptionId
1           3           1           What is 2+2?          1                 1           5               2
2           3           2           What is 2+2?          1                 1           5               2
3           3           3           Name these 2 flowers  2                 2           5               4

回答表:

AnswerId (Auto)  QuestionId  Answer
1                1           A
2                1           B
3                2           A
4                2           D
5                3           C

返信テーブル:

ReplyId  ReplyType
1        Single
2        Multiple

オプション表:

OptionId OptionType
1        A-C
2        A-D
3        A-E
4        A-F
4

1 に答える 1

1

クエリを少し変更したところ、結果が得られています。まず、 を使用するように変更しましたLEFT JOIN。その後、追加のテーブルに回答がない場合などに質問が返されます。次に、集計関数を使用しているため、次GROUP_CONCAT()を使用する必要がありますGROUP BY

SELECT
  q.QuestionContent, 
  o.OptionType, 
  q.NoofAnswers, 
  GROUP_CONCAT(DISTINCT Answer ORDER BY Answer SEPARATOR '') AS Answer, 
  r.ReplyType, 
  q.QuestionMarks
FROM Question q
LEFT JOIN Answer an
  ON q.QuestionId = an.QuestionId
LEFT JOIN Reply r 
  ON q.ReplyId = r.ReplyId 
LEFT JOIN Option_Table o 
  ON q.OptionId = o.OptionId 
group by q.QuestionContent

デモで SQL Fiddle を参照してください

これは結果を返します:

|      QUESTIONCONTENT | OPTIONTYPE | NOOFANSWERS | ANSWER | REPLYTYPE | QUESTIONMARKS |
----------------------------------------------------------------------------------------
| Name these 2 flowers |        A-F |           2 |      C |  Multiple |             5 |
|         What is 2+2? |        A-D |           1 |    ABD |    Single |             5 |
于 2013-01-07T14:53:29.653 に答える