2401_84280483 2024-04-28 19:56 采纳率: 91.4%
浏览 1
已结题

多表联合查询语句怎么写

stinfo,cinfo,scinfo多表联合查询
查询课程成绩在70~80之间的学生的学号、姓名和成绩
查询选修“C++程序设计基础”课程的学生的学号和成绩
查询所有课程的不及格成绩单,要求给出学生的课程编号、课程名称、学号和成绩

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-28 19:56
    关注

    引自免费微信小程序:皆我百晓生

    为了帮助您完成这些SQL查询,我会分别为您编写相应的查询语句,并解释它们的工作原理。

    1. 查询课程成绩在70~80之间的学生的学号、姓名和成绩

    假设我们有三个表:学生信息(students), 课程信息(courses),以及成绩信息(scores)。学生表(stinfo)包含学号(student_id)、姓名(name)等字段,课程表(cinfo)包含课程编号(course_id)、课程名称(course_name)等字段,成绩表(scinfo)包含学号(student_id)、课程编号(course_id)和成绩(grade)等字段。

    查询语句如下:

    SELECT s.student_id, s.name, sc.grade
    FROM students s
    JOIN scores sc ON s.student_id = sc.student_id
    WHERE sc.grade BETWEEN 70 AND 80;
    

    这个查询首先通过JOIN操作将学生表和成绩表连接在一起,然后通过WHERE子句筛选出成绩在70到80之间的记录。

    1. 查询选修“C++程序设计基础”课程的学生的学号和成绩
    SELECT sc.student_id, sc.grade
    FROM scores sc
    JOIN courses c ON sc.course_id = c.course_id
    WHERE c.course_name = 'C++程序设计基础';
    

    这个查询首先通过JOIN操作将成绩表和课程表连接起来,然后通过WHERE子句筛选出选修了"C++程序设计基础"课程的记录。

    1. 查询所有课程的不及格成绩单,要求给出学生的课程编号、课程名称、学号和成绩

    这里我们假设不及格的成绩为60分以下。我们可以使用同样的方法连接这三个表并进行筛选:

    SELECT sc.course_id, c.course_name, s.student_id, sc.grade
    FROM students s
    JOIN scores sc ON s.student_id = sc.student_id
    JOIN courses c ON sc.course_id = c.course_id
    WHERE sc.grade < 60;
    

    这个查询会返回所有不及格(成绩低于60分)的学生的课程编号、课程名称、学号和成绩。

    请注意,这些查询假设了表之间的关联是正确的,即学生表中的学生ID与成绩表中的学生ID对应,且成绩表中的课程ID与课程表中的课程ID对应。根据您的实际数据库结构,可能需要调整表名、列名和关联条件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月7日
  • 已采纳回答 4月29日
  • 创建了问题 4月28日