右外部結合
右外部結合 は、表を結合する方式です。 結果には、RIGHT OUTER JOIN 節より後に指定された表からの一致しない行のみが含まれます。
2 つの表を結合し、結果セットに一方の表のみからの一致しない行が含まれるようにする場合は、LEFT OUTER JOIN 文節または RIGHT OUTER JOIN 文節を使用します。 マッチングは結合条件に基づいて行われます。
文節 RIGHT OUTER JOIN は、RIGHT OUTER JOIN の後に指定された 表の行で、RIGHT 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
PARTS 表の中に対応する行がない、PRODUCTS 表からの行を組み込むには、
次の照会を実行します。
SELECT PART, SUPPLIER, PRODUCTS.PROD#, PRODUCT, PRICE
FROM PARTS RIGHT 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
BLADES ACE_STEEL 205 SAW 18.90
---------- ------------ 30 RELAY 7.55
---------- ------------ 505 SCREWDRIVER 3.70PARTS 表からの行が結果表に入るのは、PARTS 表の製品番号が PRODUCTS 表の行の製品番号と一致し、 かつ価格がその行の 10.00 を超える場合に限られます。
PRODUCTS 表には、結果表の製品番号が一致していない行を持つ可能性があり、 かつ PRICE 列が PRODUCTS 表にあるので、PRICE が 10.00 以下の行が、 結果に含まれます。 PARTS 列には、結果表のこれらの行の NULL 値が入ります。