我有两张这样的表:
测验
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(学生)。是我必须使用另一种方式,如不同?
答案 0 :(得分:0)
您需要left join
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;