我有两个这样的表:
测验
quizNum | quizName
------------------
1 | chapter 1
2 | chapter 2
3 | chapter 3
学生评估
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(学生)。我是否必须使用另一种方式,例如不同的方式?
最佳答案
您需要将Quiz
与studentassessment
进行左连接
,以确保显示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;
关于mysql - 如何统计sql中回答测验的总id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27109333/