在MySQl Workbench中,如何从三个单独的表中返回一个输出表,每个表中有一行?
问题如下: 写一个显示学生成绩单的查询。查询应输出以下列:在MySQl Workbench中,如何从三个单独的表中返回一个输出表,每个表中有一行?,mysql,sql,mysql-workbench,rdbms,Mysql,Sql,Mysql Workbench,Rdbms,问题如下: 写一个显示学生成绩单的查询。查询应输出以下列: 学生姓名 课程名称 数字等级 对于额外的学分,请以字母而不是数字的形式列出分数 3个相关表格如下: 登记 其中包含列 科号/学生号/成绩(这是使用不带小数的4分GPA系统的数字) 学生 其中包含列 ID/姓名/电子邮件 课程 其中包含列 ID/标题/说明/单位 我能想到的最好办法是: select name, Grade, Title from SELECT * FROM ( student join regist
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语法错误,我不知道为什么。尝试一个嵌套的select语句,其中只有两个表有效,但不知道为什么拒绝从三重连接中选择
至于额外学分部分,我不知道除了在grades列上运行update table语句并将1、2、3、4设置为D、C、B、A之外,还应该做什么。您的select语句存在一些语法问题。查询应如下所示。您需要正确地使用JOIN来使用关系键列在两个表之间建立关系
SELECT name, Grade, Title
FROM Student A
INNER JOIN registration B B.Student_ID = A.ID
INNER JOIN Course C C.ID = B.Section_ID
要获得每个学生的结果,请在脚本末尾应用筛选器,如下所示:-
WHERE A.ID = N --Put Student ID Here.
您不需要子查询。只需从联接表中选择所需的列。对于额外学分,请使用
案例
声明。我更喜欢sqlserver
,但我认为MySql
可以做一个Case
。这将为您指明正确的方向。