sql 有课程表、教师表、选课表和授课表4张表,查询每门课程的课程号、任课教师姓名及其选课人数
时间: 2024-01-20 18:04:39 浏览: 33
可以使用以下 SQL 语句来查询每门课程的课程号、任课教师姓名及其选课人数:
```
SELECT c.课程号, t.姓名 AS 任课教师, COUNT(*) AS 选课人数
FROM 课程表 c
JOIN 授课表 s ON c.课程号 = s.课程号
JOIN 教师表 t ON s.教师号 = t.教师号
JOIN 选课表 x ON t.教师号 = x.教师号 AND c.课程号 = x.课程号
GROUP BY c.课程号, t.姓名;
```
其中,`JOIN` 用于连接多张表,`COUNT(*)` 用于统计选课人数,`GROUP BY` 用于按照课程号和任课教师分组。
相关问题
sql 有课程表、教师表、选课表和授课表,课程表包含课程号和课程名称,教师表包含教师姓名和教师编号,选课表包含课程号和学号,授课表包含教师编号和课程号4张表,查询每门课程的课程号、任课教师姓名及其选课人数
你可以使用以下 SQL 语句来实现该查询:
SELECT c.课程号, t.教师姓名, COUNT(s.学号) AS 选课人数
FROM 课程表 c
INNER JOIN 授课表 r ON c.课程号 = r.课程号
INNER JOIN 教师表 t ON r.教师编号 = t.教师编号
LEFT OUTER JOIN 选课表 s ON c.课程号 = s.课程号
GROUP BY c.课程号, t.教师姓名
ORDER BY c.课程号;
这个查询语句的核心部分是通过多个表之间的 INNER JOIN 和 LEFT OUTER JOIN 来关联课程、教师、选课和授课信息。其中,关联课程和授课信息使用 INNER JOIN,关联教师和授课信息使用 INNER JOIN,关联选课和课程信息使用 LEFT OUTER JOIN。最后,使用 GROUP BY 和 COUNT 函数来统计每门课程的选课人数。
有三张表学生表Student,课程表course,成绩表score 查询所有学生各科成绩 得分 要求显示学生姓名 课程 得分
可以使用 JOIN 操作来连接三张表,然后选择需要的列进行查询。以下是一个示例 SQL 查询语句:
```
SELECT Student.name, course.course_name, score.score
FROM Student
JOIN score ON Student.id = score.student_id
JOIN course ON course.id = score.course_id;
```
假设 Student 表中有 id 和 name 两列,course 表中有 id 和 course_name 两列,score 表中有 student_id、course_id 和 score 三列。上述 SQL 语句将返回所有学生各科成绩的查询结果,包括学生姓名、课程名称和得分。