左外部結合
左外部結合 は、表を結合する方式です。 結果には、LEFT OUTER JOIN 節より前に指定された表からの一致しない行のみが含まれます。
2 つの表を結合し、結果セットに一方の表のみからの一致しない行が含まれるようにする場合は、LEFT OUTER JOIN 文節または RIGHT OUTER JOIN 文節を使用します。 マッチングは結合条件に基づいて行われます。
文節 LEFT OUTER JOIN は、LEFT OUTER JOIN の前に指定された 表の行で、LEFT OUTER JOIN の後に指定された表に一致する値を持たない行を組み込みます。
内部結合と同様に、結合条件は、副照会を含まない 単純検索条件または複合検索条件のいずれでも構いません。
左外部結合の例
この例では、PARTSとPRODUCTSテーブルに以下の行が含まれていると仮定します
PARTS table PRODUCTS table
PART PROD# SUPPLIER PROD# PRODUCT PRICE
======= ===== ============ ===== =========== =====
WIRE 10 ACWF 505 SCREWDRIVER 3.70
OIL 160 WESTERN_CHEM 30 RELAY 7.55
MAGNETS 10 BATEMAN 205 SAW 18.90
PLASTIC 30 PLASTIK_CORP 10 GENERATOR 45.75
BLADES 205 ACE_STEEL
PRODUCTS 表の中には一致する値がない行を PARTS 表から 組み込み、かつ、10.00 を超える価格を組み込むには、次の照会を実行します。
SELECT PART, SUPPLIER, PARTS.PROD#, PRODUCT, PRICE
FROM PARTS LEFT OUTER JOIN PRODUCTS
ON PARTS.PROD#=PRODUCTS.PROD#
AND PRODUCTS.PRICE>10.00;
結果表は、以下の出力のようになります。
PART SUPPLIER PROD# PRODUCT PRICE
======= ============ ===== ========== =====
WIRE ACWF 10 GENERATOR 45.75
MAGNETS BATEMAN 10 GENERATOR 45.75
PLASTIC PLASTIK_CORP 30 ----------- -------
BLADES ACE_STEEL 205 SAW 18.90
OIL WESTERN_CHEM 160 ----------- -------
PRODUCTS 表からの行が結果表に入るのは、PRODUCTS 表の製品番号が PARTS 表の行の製品番号と一致し、 かつ価格がその行の 10.00 を超える場合に限られます。 PRICE 値が 10.00 を超えない行は、 結合の結果に含まれますが、PRICE 値は NULL に設定されます。
この結果表で、PROD# 30 の価格が 10.00 未満であるため、PROD# 30 の行の 右の 2 つの列の値は NULL です。 PROD# 160 がもう一方の表の製品番号と一致しないため、PROD# 160 の右の 2 つの列の値は NULL です。