有三个表
表1:Dclass
did dname
1 文学
2 英语
3 语文
4 数学
表2:examcontent
eid did
1 1
2 1
3 1
4 2
5 3
表3:Userexamanswer
aid eid uid
1 1 1
2 1 1
3 1 1
4 2 1
5 4 1
6 4 1
表1为试题类型表,表2为试题内容表,表3为学员答题情况表
现在要求按表1为基础查询出各类型某个学员的答题情况统计,也就是要查询出一下数据
did dname cnt
1 文学 4
2 英语 2
3 语文 0
4 数学 0
三表直接联合查询不行,因为表3中不一定含有某类型的数据,这个时候就只会显示有数据的类型了
可以left join或right join不一定是inner join。
Left Join
select dname,b.cnt from Dclass
inner join (select examcontent.did,count(Userexamanswer.eid) as cnt from examcontent
left join Userexamanswer
on examcontent.eid=Userexamanswer.eid
group by examcontent.did,examcontent.eid) b
on dclass.did=b.did
这个应该我没问题了。一定要采纳哦。专门建表去解决你这个问题!