注:この質問は、同じまたは類似の回答の選択肢を使用する一連の質問の一部です。回答の選択は、シリーズ内の複数の質問に対して正しい場合があります。各質問は、このシリーズの他の質問とは無関係です。質問に記載されている情報と詳細は、その質問にのみ適用されます。
Customer_CRMSystemおよびCustomer_HRSystemという名前のテーブルを含むデータベースがあります。どちらのテーブルも以下の構造を使用しています。

以下のレコードがテーブルに存在します。
得意先コードシステム

Customer_HRSystem

CustomerCodeにNULL値を含むレコードは、CustomerNameによって一意に識別できます。
両方のテーブルに表示される個別の顧客を表示する必要があります。
どのTransact-SQLステートメントを実行しますか?
A:

B:

子:

D:

E:

F:

G:

H:

正解:H
説明/参照:
Explanation:
一致しない行を結合の結果に含めることで一致しない情報を保持するには、完全外部結合を使用します。 SQL Serverは、完全外部結合演算子FULL OUTER JOINを提供します。これには、他のテーブルに一致する値があるかどうかにかかわらず、両方のテーブルのすべての行が含まれます。
間違った答え:
A:内部結合は、両方のテーブルから結合条件に一致する行が少なくとも1つある場合にのみ、戻り行を返します。内部結合は、他のテーブルの行と一致しない行を削除します。
B:INTERSECTは、左右両方の入力照会演算子によって出力される別々の行を返します。
D:EXCEPTは、左側の入力クエリから、右側の入力クエリでは出力されない、異なる行を返します。
E:UNIONは、複数の結果セットを組み合わせて単一の結果セットとして返すように指定しますが、CustomerID列の値が一致しないため、ここでは機能しません。
F:UNION ALLは結果にすべての行を組み込みます。これには重複も含まれます。指定しない場合、重複行は削除されます。
G:クロスジョインは2つのテーブルのデカルト積を生成します。
参照先:https://technet.microsoft.com/ja-jp/library/ms187518(v=sql.105).aspx