【问题标题】:How do i create a view that is made from multiple tables [duplicate]如何创建由多个表组成的视图 [重复]
【发布时间】:2020-06-20 14:06:04
【问题描述】:

我有三张桌子

Students (sid:integer, sname:string, age:integer) 
Courses (cid:integer, cname:integer, credits:integer) 
Grades(sid:integer, cid:integer, grade:string) 

我正在尝试创建一个视图,使用他们的 GPA 列出班级中的顶尖学生

到目前为止我已经尝试过这个查询

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

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

【问题讨论】:

标签: mysql sql database


【解决方案1】:

您需要正确的选择加入

    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

您的主表是成绩表,因为它与其他两个表相关。因此,从这个表中使用每个表的连接,您需要正确的 ON 子句

(在您的代码中,您有几个错误的部分。您将 from 子句与逗号分隔的表名混合并加入 .. 而不是将两个表加入到课程表中,而是使用 tw time a join on grades 表,但这种语法不要' t 以正确的方式解决表之间的关系)。

【讨论】:

  • 你的拼写还是比较粗心,改正比较累。
猜你喜欢
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 2020-05-11
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多