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

qaxu7uf2  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(326)

这个问题在这里已经有答案了

mysql创建连接两个表的视图(2个答案)
10个月前关门了。
我有三张table

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

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

r7s23pms

r7s23pms1#

你需要选择合适的连接

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

你的主表是成绩表,因为它与其他两个表相关。因此,从这个表中为每个表使用一个join,您需要正确的on子句
(代码中有几个错误部分。将from子句与逗号分隔的表名和join混合。。不是将两个表连接到课程表,而是使用tw time a join on grades表(但这种语法不能以正确的方式解析表之间的关系)。

相关问题