sqlsever 使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,course_XXX表中没有的课程列值为空。
时间: 2024-06-02 14:14:17 浏览: 86
SELECT c.course_no, c.course_name, COUNT(s.student_no) AS num
FROM course c
RIGHT JOIN sc ON c.course_no = sc.course_no
LEFT JOIN student s ON s.student_no = sc.student_no
GROUP BY c.course_no, c.course_name;
相关问题
sql sever查询所有课程的名字以及课程被选修的情况(显示信息包括,课程 名、学号、课程编号、成绩)
可以使用以下 SQL 查询语句来实现:
```
SELECT Course.CourseName, SC.StudentID, SC.CourseID, SC.Score
FROM Course LEFT JOIN SC ON Course.CourseID = SC.CourseID
ORDER BY Course.CourseID ASC
```
这里使用了左连接(LEFT JOIN)来保证查询结果中包含所有课程,即使有些课程没有被选修过。同时,使用 ORDER BY 子句按照课程编号升序排列结果。
sql sever 查询没有选修课程的同学的基本信息
可以使用以下 SQL 语句查询没有选修课程的同学的基本信息:
SELECT * FROM students WHERE student_id NOT IN (SELECT student_id FROM course_selections);
其中,students 是学生信息表,包含学生的基本信息,course_selections 是选课信息表,包含学生选修的课程信息。这个 SQL 语句会返回没有选修课程的同学的所有基本信息。
阅读全文