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日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见