2014-11-24 35 views
0

回答测验我有两个表这样的总ID:如何计算在SQL

测验

quizNum | quizName 
------------------ 
1  | chapter 1 
2  | chapter 2 
3  | chapter 3 

studentassessment

stuNum | quizNum | assessmentMark 
----------------------------------- 
2012 | 1  | 10 
2012 | 2  | 8 
2013 | 1  | 10 
2014 | 1  | 5 

我想要得到的结果像这样的东西

quizNum | quizName  | attempedstudent 
-------------------------------------------- 
1  | chapter 1  | 3   
2  | chapter 2  | 1   
3  | chapter 3  | 0   

描述:全2台连接..我想计算已通过quziNum

完成了他们的测验共有学生,这是典型的组合,我试图:

$sql = "select a.quizNum, (count(a.stuNum)) as attemptedstudent ,c.quizName,c.quizDateFrom from studentassessment a join quiz c on a.quizNum=c.quizNum"; 

我写这样的,结果显示它统计所有stuNum(学生)。是我不得不用另一种方式如独特?

回答

0

您需要left joinQuizstudentassessment以确保Quiz的所有数据都与计数一起显示。

select 
q.quizNum, 
q.quizName, 
count(sa.stuNum) as attempedstudent 
from Quiz q 
left join studentassessment sa on sa.quizNum = q.quizNum 
group by q.quizNum; 
+0

thanks..this is works .. – Lisa 2014-11-24 16:47:25