注:この質問は、同じまたは類似の回答の選択肢を使用する一連の質問の一部です。回答の選択は、シリーズ内の複数の質問に対して正しい場合があります。各質問は、このシリーズの他の質問とは無関係です。質問に記載されている情報と詳細は、その質問にも当てはまります。
銀行システム用のデータベースがあります。データベースには、tblDepositAcctとtblLoanAcctという2つのテーブルがあり、それぞれ預金口座とローン口座を格納しています。どちらの表にも、次の列があります。

あなたは預金口座またはローン口座を持っているが両方の種類の口座を持っていない顧客の総数を決定する必要があります。
どのTransact-SQLステートメントを実行しますか?
A:

B:

子:

D:

E:

F:

G:

H:

正解:G
説明/参照:
Explanation:
SQL Serverは、完全外部結合演算子FULL OUTER JOINを提供します。これには、他のテーブルに一致する値があるかどうかにかかわらず、両方のテーブルのすべての行が含まれます。
ProductテーブルとSalesOrderDetailテーブルのProductID列の結合を考えます。結果には、受注がある商品のみが表示されます。 ISO FULL OUTER JOIN演算子は、テーブルに一致するデータがあるかどうかにかかわらず、両方のテーブルのすべての行が結果に含まれることを示します。
WHERE句に完全外部結合を含めて、テーブル間で一致するデータがない行だけを返すことができます。次のクエリは、一致する販売注文がない製品と、製品に一致しない販売注文だけを返します。
AdventureWorks2008R2を使用します。
GO
- FULLキーワードに続くOUTERキーワードはオプションです。
SELECT p.Name、sod.SalesOrderID
製造元から。製品p
FULL OUTER JOIN Sales.SalesOrderDetail sod
ON p.ProductID = sod.ProductID
p.ProductIDがNULLの場所
またはsod.ProductIDがNULLです
p.Nameによる注文
参照先:https://technet.microsoft.com/ja-jp/library/ms187518(v=sql.105).aspx