私のデータベース構造は次のようになります。
https://docs.google.com/open?id=0B9ExyO6ktYcOenZ1WlBwdlY2R3c
一部の表の説明:
answer_chk_results
- 回答表を確認しました。したがって、このテーブルに回答が存在しない場合、それはチェックされていないことを意味しますlesson_questions
- レッスン <-> 問題の関連付け (ID による) テーブル
次のようにデータベースにクエリを実行すると:
SELECT
q.id,
q.content,
q.type
FROM
`questions_and_exercises` q,
`lesson_questions` lq
WHERE
q.id = lq.qid
AND lq.lid = 1
質問のすべてのリストを取得しています。しかし、私が望むのは、すべての質問に対する回答とチェック済みの回答の数です。このクエリを使用すると:
SELECT
q.id,
q.content,
q.type,
COUNT(DISTINCT a.ID) answer_count,
COUNT(DISTINCT acr.id) checked_count
FROM
`questions_and_exercises` q,
`lesson_questions` lq
LEFT JOIN answers a ON a.qid = lq.qid,
LEFT JOIN `answer_chk_results` acr ON acr.aid = a.id
WHERE
q.id = lq.qid
AND lq.lid = 1
結果は、回答の数が間違っている 1 つの質問のみです。(私の DB には約 9 ~ 10 の質問があります) 何が欠けていますか?