SELECT
`学校名`, `班级名`
, (SELECT COUNT(*) FROM `学生表` WHERE `班级ID` = tA.`班级ID` AND `性别` = 1) `男生数`
, (SELECT COUNT(*) FROM `学生表` WHERE `班级ID` = tA.`班级ID` AND `性别` = 0) `女生数`
, (SELECT COUNT(*) FROM `学生表` WHERE `班级ID` = tA.`班级ID`) `总学生生数`
FROM `班级表` tA
LEFT JOIN `学校表` ON `班级表`.`学校ID` = `学校表`.`学校ID`;
`学校名`, `班级名`
, (SELECT COUNT(*) FROM `学生表` WHERE `班级ID` = tA.`班级ID` AND `性别` = 1) `男生数`
, (SELECT COUNT(*) FROM `学生表` WHERE `班级ID` = tA.`班级ID` AND `性别` = 0) `女生数`
, (SELECT COUNT(*) FROM `学生表` WHERE `班级ID` = tA.`班级ID`) `总学生生数`
FROM `班级表` tA
LEFT JOIN `学校表` ON `班级表`.`学校ID` = `学校表`.`学校ID`;
(select count(*) from 学生表 where 性别=1),
(select count(*) from 学生表 )
from 学校表,班级表,学生表 where 学校表.学校ID=班级表.学校ID and
班级表.班级ID=学生表.班级ID;没有建表来测试,有错的话请见谅。