1

質問とそれに対応するすべての回答を返す SQL ステートメントを作成しようとしています。以下の例では、ハードコーディングしましたsubject_idが、動的に設定されます。

結果を 5 つの質問のみに制限したいのですが、追加LIMIT 5するだけで、返されるデータ全体が 5 つだけに制限されます。これは、私が望むものではありません。

SELECT q.id,q.question,a.question_id,a.answer, a.correct
FROM questions q
JOIN answers a ON q.id = a.question_id
WHERE q.subject_id = 18 
GROUP BY q.id,a.id

私は何か他のことも達成したいのですが、それをビジネスロジック(php)に実装する方が良いかどうかはわかりません。各質問の正解 (a.correct = 1) とランダムな 3 つの不正解 (正解 = 0) を返したいと考えています。

4

1 に答える 1

2

LIMIT最初の質問の場合:サブクエリで個別に質問テーブルにを適用する必要があります。

  SELECT q.id,q.question,a.question_id,a.answer, a.correct
    FROM (SELECT * FROM questions q WHERE q.subject_id = 18
          ORDER BY RAND() LIMIT 5) q
    JOIN answers a on q.id = a.question_id
GROUP BY q.id, a.id
于 2012-04-17T00:54:40.520 に答える