如何 return 来自三个独立 table 的输出 table,其中每个输入 table 在 MySQl Workbench 中有一行?

How to return an output table from three separate tables that has one row from each input table in MySQl Workbench?

提问如下:

写一个显示学生成绩单的查询。查询应输出列:

  1. 学生姓名
  2. 课程名称
  3. 数值成绩

对于额外学分,请将成绩列为字母而不是数字。

3 个相关的 table 是:

注册 其中包含列

Section_ID / Student_ID / 成绩(这是使用 4 分 GPA 系统的数字,没有小数点)

学生 其中包含列

ID/姓名/电子邮件

课程 其中包含列

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 语法错误,我不确定为什么。尝试嵌套 select 语句,其中只有 2 个有问题的 table 有效,不知道为什么来自三重连接的 select 被拒绝。

至于额外的学分部分,除了 运行 更新成绩列中的 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.