【发布时间】:2019-05-24 17:38:12
【问题描述】:
问题如下:
编写一个显示学生成绩单的查询。查询应该输出列:
- 学生姓名
- 课程名称
- 数值等级
对于额外的学分,将成绩列为字母而不是数字。
3 个相关的表格是:
注册 其中包含列
Section_ID / Student_ID / Grade(这是使用没有小数的 4 点 GPA 系统的数字)
学生 其中包含列
身份证/姓名/电子邮件
课程 其中包含列
ID/标题/描述/单位
我能想到的最好的是:
select name, Grade, Title
from SELECT * FROM
(
student
join registration
on registration.Student_ID = student.ID
join course on course.ID = registration.Section_ID
) as transcript group by student ;
这给了我 1064 语法错误,我不知道为什么。尝试仅使用 2 个有问题的表的嵌套选择语句有效,不知道为什么从三重连接中选择被拒绝。
至于额外的学分部分,除了在成绩列上运行更新表语句并将 1、2、3、4 设置为 D、C、B、A 之外,我不知道该怎么做。
【问题讨论】:
-
您不需要子查询。只需从联接表中选择所需的列。对于额外的功劳,请使用
Case声明。我更喜欢SQL Server,但我认为MySql可以做Case。这应该为您指明正确的方向。
标签: mysql sql mysql-workbench rdbms