簡體   English   中英

在MySQL中從多個表創建視圖

[英]Creating a View from Multiple Tables in MySQL

我正在嘗試根據下表創建一個視圖,該表提供classId,學期,教授該課程的教授的姓名以及該學期提供的部分數量。 我試圖用SQL查詢創建視圖:

CREATE SQL SECURITY INVOKER VIEW ClassesView AS SELECT Qualified.ClassId, Teaches.Semester, CONCAT(Professor.FName, Professor.LName) AS Name, Teaches.Section FROM Teaches, Professor, Qualified WHERE Qualified.EmpId = Professor.EmpId, Qualified.ClassId = Teaches.Class;

但這沒有用。 如何從下表創建所需的視圖?

CREATE TABLE Class
(
    ClassId VARCHAR(6),
    Description VARCHAR(30),
    NumCredits Integer,
    Prereq VARCHAR(20),
    PRIMARY KEY(ClassId)
);

CREATE TABLE Section
(
    ClassId VARCHAR(6),
    SecNo CHAR(10),
    Semester CHAR(4),
    ClassRoom VARCHAR(6),
    TimeOffered VARCHAR(18),
    PRIMARY KEY(SecNo),
    FOREIGN KEY(ClassId) REFERENCES Class(ClassId)  
);

CREATE TABLE Professor
(
    EmpId INTEGER,
    FName VARCHAR(10),
    LName VARCHAR(10),
    Dept VARCHAR(2),
    QualClass VARCHAR(40),
    PRIMARY KEY (EmpId)
);

CREATE TABLE Teaches
(
    Class VARCHAR(5),
    Section INTEGER,
    Semester CHAR(4),
    EmpId INTEGER,
    FOREIGN KEY (EmpId) REFERENCES Professor(EmpId)
);

CREATE TABLE Qualified
(
    EmpId INTEGER,
    ClassId VARCHAR(5)
);

謝謝。 任何幫助將不勝感激,因為它將幫助我學習MySQL。

語法錯誤(用AND替換逗號)

CREATE SQL SECURITY INVOKER VIEW ClassesView AS 
SELECT Qualified.ClassId, Teaches.Semester, CONCAT(Professor.FName, Professor.LName) AS Name, Teaches.Section 
FROM Teaches, Professor, Qualified 
WHERE Qualified.EmpId = Professor.EmpId AND Qualified.ClassId = Teaches.Class;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM