如何计算在sql中回答测验的总id

时间:2014-11-24 16:20:14

标签: mysql 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        

描述:所有两个表都已连接..我想计算通过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(学生)。是我必须使用另一种方式,如不同?

1 个答案:

答案 0 :(得分:0)

您需要left join Quizstudentassessment,以确保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;