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表,但此语法无法以正确的方式解析表之间的关系)。这是否回答了您的问题?你的拼写仍然很粗心,纠正它变得很烦人。