select a.className as '班级名称',
b.zyName as '所属专业',
(select count(*) from Student c where a.classId=c.classId) as '人数'
from Class a
inner join ZY b on a.zyId=b.zyId

解决方案 »

  1.   

    或select a.className as '班级名称',
    b.zyName as '所属专业',
    c.qty as '人数'
    from Class a
    inner join ZY b on a.zyId=b.zyId
    inner join (select classId,count(*) as qty from Student group by classId) c on a.classId=c.classId
      

  2.   

    select c.className 班级名称, z.zyName 所属专业, count(s.stuId) 人数
    from Class c, ZY z, Student s
    where s.classId = c.classId and c.zyId = z.zyId
      

  3.   

    inner join不行,因为有0的,1楼可以
    或者select a.className as '班级名称',
    b.zyName as '所属专业',
    count(c.stuId) as '人数'
    from Class a
    inner join ZY b on a.zyId=b.zyId
    left join Student c on a.classId=c.classId
    group by a.className,b.zyName