2011-02-06 12 views
1

私は、ユーザー、回答、質問および科目の4つのテーブルを持つ検査データベースを持っています。「見つからない」行を見つける

私は、件名、ユーザーあたりの正解の数を見つける必要があります。

私のクエリ私の主題ごとの正解の数を与えますが、ユーザがS_IDが表示されていない正しい答えを持っていない場合、私は0

を有するものを表示する必要が

select U_id,questions.S_id ,count(Q_id) 
from answers inner join questions on questions.q_id = answers.q_id 
where questions.Correct = answers.answer 
group by answers.U_id,questions.S_id 

result: 
1 | s1 | 2 
1 | s2 | 3 
1 | s3 | 1 
2 | s1 | 1 
2 | s2 | 1 

私が必要

結果は

result: 
1 | s1 | 2 
1 | s2 | 3 
1 | s3 | 1 
2 | s1 | 1 
2 | s2 | 1 
2 | s3 | 0 

任意のヘルプですか?

note私はMySQLを使用していますが、MS SQLサーバーは問題ありません。

+0

内部結合について...外部結合、クロス結合...あまりにも前に...試してみてください。 – yankee

+0

指定されたテーブル構造がクエリにマップされません – NotMe

+0

質問表 – vaquito

答えて

2
select u.U_id, q.S_id, count(a.q_id) 
from users u 
cross join questions q 
left join answers a on q.q_id = a.q_id and u.u_id = a.u_id and q.Correct = a.answer 
group by u.U_id, q.S_id 
+0

にS_idを追加しました。ありがとう、ありがとうございます。 – vaquito

関連する問題