Oracle9iのANSI/ISO SQL99に準拠した結合処理

SQL標準は、準拠しているソフトウェア製品間でのSQLアプリケーションの移植を容易にします。 Oracleは常に、SQLの標準策定に積極的に貢献しています。 Oracle9iリリースでは、いくつかの新機能がANSI/ISO SQL99標準に準拠しています。 これらの中で注目すべき機能の1つが、ANSI準拠の 結合です。

結合とは、複数の表、ビュー、またはマテリアライズド・ビューからの行を組み合せる問合せです。 Oracleでは、複数の表が問合せのFROM 句に指定されるたびに結合が実行されます。 問合せのSELECT構文のリストには、これらの任意の表から任意の列を選択できます。

結合条件
ほとんどの結合問合せには、それぞれ異なる表からの2つの列を比較するWHERE句条件が含まれています。 このような条件を結合条件と呼びます。 結合を実行するには、Oracleは各表からの1列を含む行のペアを結合して、この組合せに対して結合条件をTRUEに評価させます。

自然結合
自然結合は、同じ名前を持つ2つの表内のすべての列に基づいています。 この結合では、関連列に同じ値が含まれている2つの表からの行が選択されます。

内部結合
内部結合(「単純結合」と呼ばれることもあります)は、結合条件に一致する行のみを返す、複数の表の結合です。 内部結合は、結合処理のデフォルト結合タイプです。

外部結合
外部結合は、内部結合の結果を拡張します。外部結合では、結合条件に一致するすべての行に加え、 1つの表では結合条件を満たすがもう一方の表内では結合条件を満たさない行のすべてまたは一部が返されます。
  • 表AとBに対して外部結合を実行し、Aからの行すべてを返す問合せ( 左外部結合)を作成するには、 ANSI LEFT [OUTER] JOIN構文を使用します。A内にあるBとは一致しないすべての行について、Bの列を含む すべてのSELECT List式に対してOracleはNULLを返します。

  • 表AとBに対して外部結合を実行し、Bからの行すべてを返す問合せ( 右外部結合)を作成するには、 ANSI RIGHT [OUTER]構文を使用します。B内にあるAとは一致しないすべての行について、Aの列を含む すべてのSELECT List式に対してOracleはNULLを返します。

  • 表AとBに対して外部結合を実行してAとBからの行すべてを返し、これらが結合条件を満たさない場合には NULLで拡張する問合せ( 完全外部結合)を作成するには、ANSI FULL [OUTER] JOIN構文を使用します。

 
追加情報
 Oracle9i Database マニュアル(ドキュメント) - SQLおよびユーティリティ - Oracle9i SQLリファレンス 第7章 SQL問合せとその他のSQL文

Oracle9i Database Daily Feature
 アーカイブ