外部結合
外部結合 は、いずれかの表、または両方の表の一致しない行が結果に含まれるように複数の表を結合する方式です。 マッチングは結合条件に基づいて行われます。
Db2 は、以下の3種の外部結合をサポートします。
- 左外部結合
- 左外部結合の結果には、内部結合で欠落していた左テーブルの行が含まれます。
T1 LEFT OUTER JOIN T2の結果は、それらのペアとなった行から構成され、 T1 のペアになっていない各行については、その行と T2 のヌル行の結合となります。 T2 から導き出されたすべての列では、NULL 値が許可されます。 詳細は、「左外部結合」 を参照してください。 - 右外部結合
- 右外部結合の結果には、内部結合で欠落していた右テーブルの行が含まれます。
T1 RIGHT OUTER JOIN T2の結果は、それらのペアとなった行から構成され、 T2 のペアになっていない各行については、その行と T1 のヌル行の結合となります。 T1 から導き出されたすべての列では、NULL 値が許可されます。 詳細は 「右外部結合」 を参照してください。 - 全外部結合
- 完全な外部結合の結果には、内部結合では欠落していた両テーブルの行が含まれます。
T1 FULL OUTER JOIN T2の結果は、対応する行のペアと、 T1 の対応しない各行については、その行と T2 のヌル行の結合、 T2 の対応しない各行については、その行と T1 のヌル行の結合で構成されます。 結果表のすべての列で NULL 値が許可されます。 詳細は、「完全外部結合」 を参照してください。
外部結合の例
以下の例では、部品表(PARTS)と製品表(PRODUCTS)という2つのテーブルを使用しています。これらは、ハードウェアの供給品で構成されています。
下図では、PARTS 表の各行に単一の部品に対するデータ (部品名、部品番号、および部品供給業者) が含まれていることを示してあります。
下図では、PRODUCTS 表の各行に単一の製品に対するデータ (製品番号、製品名、および価格) が含まれていることを示してあります。
下表には、外部結合機能を使用して PARTS 表と PRODUCTS 表の結合方法を記載してあります。 この図は、各表の一部の列に基づいて記載されています。
内部結合は、PARTS 表と PRODUCTS 表から形成される各行で構成されています。この形成は、PARTS 表の PROD# 列と PRODUCTS 表の PROD# 列の間で列値が同じであることに基づいて行われます。 内部結合には、PROD# 列が同じでない場合、一致しない列から形成される行は含まれません。
結合は、照会の FROM 文節で指定できます。 検索条件を満たす行からのデータがすべての表から結合されて、結果表を形成します。
最外部の SELECT リストが基本列を参照している場合、 結合の結果列には名前が付きます。 ただし、関数 (COALESCE など) を使用して結果の列を作成すると、その列には名前が付きません。ただし、SELECT リストで AS 文節を使用した場合はその限りではありません。