Mysql 如何创建由多个表组成的视图

Mysql 如何创建由多个表组成的视图,mysql,sql,database,Mysql,Sql,Database,我有三张桌子 Students (sid:integer, sname:string, age:integer) Courses (cid:integer, cname:integer, credits:integer) Grades(sid:integer, cid:integer, grade:string) 我正在尝试创建一个视图,用他们的平均成绩列出班上最好的学生 到目前为止,我已经尝试过这个问题 CREATE VIEW TopStudents AS SELECT Student

我有三张桌子

Students (sid:integer, sname:string, age:integer) 
Courses (cid:integer, cname:integer, credits:integer) 
Grades(sid:integer, cid:integer, grade:string) 
我正在尝试创建一个视图,用他们的平均成绩列出班上最好的学生

到目前为止,我已经尝试过这个问题

CREATE VIEW TopStudents AS
SELECT Students.sid, Students.sname, AVG(Grades.grade) AS GPA
FROM Students, Grades
               INNER JOIN Grades ON Students.sid = Grades.sid
               INNER JOIN Grades ON Course.cid = Grades.cid
WHERE GPA >3.0

问题是我不知道正确的语法

您需要选择正确的联接

    CREATE VIEW TopStudents AS
    SELECT Students.sid, Students.sname, AVG(Grades.grade) AS GPA
    FROM Grades
    INNER JOIN Students ON Student.cid = Grades.sid
    INNER JOIN Course  ON Course.id = Grades.cid
您的主表是Grades表,因为它与其他两个表相关。因此,从这个表中为每个表使用一个连接,您需要正确的ON子句


(在您的代码中,有几个部分是错误的。您将from子句与逗号分隔的表名和join混合在一起。您没有将两个表连接到课程表,而是使用tw time a join on grades表,但此语法无法以正确的方式解析表之间的关系)。

这是否回答了您的问题?你的拼写仍然很粗心,纠正它变得很烦人。