Mysql 我的查询缺少一个具有零的行
我搜索了这个问题的答案,但没有找到这个具体问题的答案。我正在制作一个数据库,用于存储老师创建的课程,并为每个课程注册的学生制作一个查找表。我想运行一个查询,显示每个老师的班级和学生人数。正如您在下面的数据中所看到的,老师有两个班级,没有学生,但在查询中只有一个班级返回 查询:Mysql 我的查询缺少一个具有零的行,mysql,sql,Mysql,Sql,我搜索了这个问题的答案,但没有找到这个具体问题的答案。我正在制作一个数据库,用于存储老师创建的课程,并为每个课程注册的学生制作一个查找表。我想运行一个查询,显示每个老师的班级和学生人数。正如您在下面的数据中所看到的,老师有两个班级,没有学生,但在查询中只有一个班级返回 查询: SELECT `c`.`ClassID` AS `id`, `c`.`Class_Name` AS `name`, `c`.`Class_Code` AS `code`, COUNT(`e`.`EnrollID
SELECT `c`.`ClassID` AS `id`,
`c`.`Class_Name` AS `name`,
`c`.`Class_Code` AS `code`,
COUNT(`e`.`EnrollID`) AS `count`
FROM `CMP_Classes` `c`
LEFT OUTER JOIN `CMP_Student_Enrollment` `e`
ON `c`.`ClassID` = `e`.`Enroll_ClassID`
AND `Class_Teacher` = 1
GROUP BY `e`.`EnrollID`
数据:
CMP_类别表:
ClassID | Class_Name | Class_Code | Class_Teacher
1 | Mr. Jones' 1st Period Class | QYTNPCGK | 1
2 | Mr. Jones' 2nd Period Class | HZWNDZPM | 1
3 | Pizza | RRCXQNNE | 9
4 | Mr. Jones' 3rd Period Class | NFLBXFEQ | 1
CMP\U学生注册表:
EnrollID | Enroll_Student | Enroll_ClassID
3 | 2 | 1
查询结果:
id | name | code | count
2 | Mr. Jones' 2nd Period Class | HZWNDZPM | 0
1 | Mr. Jones' 1st Period Class | QYTNPCGK | 1
因此,正如您所看到的,琼斯先生的第三节课没有行,但应该有。您需要在选择中按未聚合的列进行分组:
查询中的所有反勾号都使读写更加困难。啊,对不起。我需要那些PHP的背景标记。。。我试试你的建议。谢谢谢谢这就解决了!我确实必须逐行从组中删除AS id等,但它起了作用。
SELECT c.ClassID AS id, c.Class_Name AS name, c.Class_Code AS code,
COUNT(e.EnrollID) AS `count`
FROM CMP_Classes c LEFT OUTER JOIN
CMP_Student_Enrollment e
ON c.ClassID = e.Enroll_ClassID
WHERE c.Class_Teacher = 1
GROUP BY c.ClassID, c.Class_Name, c.Class_Code;