私のデータベースには、Guadalcanalの戦いで戦ったすべての船の銃の名前、変位、および銃の数を記載しなければなりません。このために私は3つのテーブルを使用する必要があります。その名前は船のテーブルから来て、銃の数はクラステーブルから来て、戦闘は戦闘テーブルから来ます。3つのテーブルに対して外部結合を使用する方法。
Select Ships.name, displacement, numGuns
From (Classes Full Outer Join Ships ON Classes.class = Ships.class), Battles
Where Battles.name = 'Guadalcanal';
私は外が正しく参加し使用していないと思うので、今これは主に動作しません。
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
);
ここで私が使用しようとしたクエリがあります。問題は、3つのテーブルに対して外部結合を使用する方法がわかりません。
バトルと他の2つのテーブルとの間には関係がありません。だから、あなたは何を期待していますか?また、その表から列を選択しないでください。それで何がやっているのか、どうやって知っていますか? – APC
最初のテーブルの後に3番目のテーブルのために別の外部結合を追加するだけです。副次的なことに、 'from'節にコンマを置くべきではありません。クエリで作成しているのは、 'Classes'と' Ships'の '完全な結合 'と' Battles'の '十字結合'です。 – Siyual