簡體   English   中英

如何使一個內部聯接對同一個表具有多個聯接

[英]How to make an inner join have multiple joins for the same table

我是SQL新手,目前正在為uni做一個項目。

背景資料:

CREATE TABLE Folders (
    Folder_ID INT PRIMARY KEY IDENTITY,
    FolderName VARCHAR (60) NOT NULL,
    DateCreated DATE NOT NULL,
    DateUpdated DATE,
    UserAccounts INT NOT NULL,
    EmailID INT,
);  

CREATE TABLE Emails (
    MessageID  INT PRIMARY KEY IDENTITY,
    Reciever INT NOT NULL,
    Sender INT NOT NULL,
    Attachments VARCHAR (60),
    Labels INT,
    Folders INT,
    Contents VARCHAR (1500) NOT NULL,
    EmailDate DATETIME DEFAULT(GETDATE()), -- Looked at http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=15990 for the solution to get the date and time automatically (rather than just the date)
    Message_Subject VARCHAR (60),
    BCC VARCHAR (60),
    CC VARCHAR (60),
    Message_Priority VARCHAR (60),
    EmailType INT NOT NULL,
    UserAccountID INT NOT NULL,
    CONSTRAINT fk_Email_Type FOREIGN KEY (EmailType) REFERENCES TypeOfEmail (EmailType_ID),
    CONSTRAINT fk_UserAccount FOREIGN KEY (UserAccountID) REFERENCES UserAccount (UserAccount_ID),
    CONSTRAINT fk_Label FOREIGN KEY (Labels) REFERENCES Labels (Label_ID),
    CONSTRAINT fk_FoldersID FOREIGN KEY (Folders) REFERENCES Folders (Folder_ID),
);
CREATE TABLE TypeOfEmail (
    EmailType_ID INT PRIMARY KEY IDENTITY,
    Type VARCHAR (8) NOT NULL,
);

內部連接,用於連接Email表中的EmailType和TypeOfEmail表中的類型:

SELECT * FROM Emails INNER JOIN TypeOfEmail ON Emails.EmailType = TypeOfEmail.EmailType_ID

我要做的就是在同一內部連接語句中的Email表中的內部連接Folders與Folders表中的FolderName。

誰能告訴我我將使用什么聲明?

希望這很清楚:/

只需使用您提到的“ On條件JoinFolders表。

SELECT E.required_col,T.required_col,F.required_col -- likewise use appropriate alias and select the column
FROM   Emails E
       INNER JOIN TypeOfEmail T
               ON E.EmailType = T.EmailType_ID
       INNER JOIN Folders F
               ON E.Folders = F.FolderName 

暫無
暫無

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

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