sql server 查询没门课的选课人数;
时间: 2024-10-24 15:08:27 浏览: 17
SQLServer学生选课管理系统
在SQL Server中,查询没门课的选课人数通常需要从包含课程信息、学生信息以及选课表的数据中进行统计。假设我们有三个表:`Courses`(存储课程信息),`Students`(存储学生信息),`Enrollments`(存储选课记录)。你可以使用以下SQL查询:
```sql
SELECT c.CourseID, COUNT(e.StudentID) AS NumberOfStudents
FROM Courses c
LEFT JOIN Enrollments e ON c.CourseID = e.CourseID
GROUP BY c.CourseID
HAVING COUNT(e.StudentID) = 0;
```
这个查询的工作原理是:
1. `JOIN`:将`Courses`表与`Enrollments`表通过`CourseID`连接起来。
2. `LEFT JOIN`: 使用左连接,保留所有`Courses`表中的课程,即使它们没有对应的选课记录。
3. `GROUP BY`:按课程ID分组,以便对每个课程进行计数。
4. `COUNT(e.StudentID)`:计算每个课程的选课人数。
5. `HAVING COUNT(e.StudentID) = 0`: 过滤出选课人数为0的课程,即没选的学生。
阅读全文