在我的數據庫中,我必須列出所有在瓜達爾卡納爾海戰中作戰的船隻的名稱,位移和槍支數量。爲此,我需要使用3個表格。這個名字來自船舶表,槍的數量和位移來自Classes表,戰鬥來自戰鬥表。如何在3個表上使用外部聯接。
Create Table Classes (
class Varchar(40),
type Char (2),
country Varchar(15),
numGuns Int,
bore Int,
displacement Int
);
Create Table Ships (
name Varchar(40),
class Varchar(40),
launched Int
);
Create Table Battles(
name Varchar(40),
date_fought Date
);
下面是我試圖使用查詢:
Select Ships.name, displacement, numGuns
From (Classes Full Outer Join Ships ON Classes.class = Ships.class), Battles
Where Battles.name = 'Guadalcanal';
現在,這並不主要是因爲我不認爲我使用的是正確的外聯接做的工作。問題是我不知道如何使用3個表的外連接。
BATTLES和其他兩張表之間沒有任何關係。那麼你期望發生什麼?另外,您不要從該表中選擇任何列。那麼你怎麼知道它在做什麼? – APC
只需在第一個表格之後爲第三個表格添加另一個外部聯接。一個側面說明,你不應該在'from'子句中使用逗號。你在查詢中創建的是'Classes'和'Ships'之間的'full join'和''Battles''上的'cross join'。 – Siyual