外部結合

ODBC では、SQL-92 の左外部結合、右外部結合、および完全外部結合で使用する構文がサポートされています。 外部結合用のエスケープ シーケンスは、

{ojouter-join}

outer-join の内容は次のとおりです。

table-reference {LEFT | RIGHT | FULL} OUTER JOIN {table-reference | outer-join} ONsearch-condition

table-reference はテーブル名を指定し、search-conditiontable-references間の結合条件を指定します。

外部結合要求は、FROM キーワードの後と WHERE 句の前 (存在する場合) の前に指定する必要があります。 完全な構文情報については、「付録 C: SQL 文法」の「外部結合エスケープ シーケンス」を参照してください。

たとえば、次の SQL ステートメントでは、すべての顧客を一覧表示し、開いている注文を示す同じ結果セットが作成されます。 最初のステートメントでは、エスケープ シーケンス構文を使用します。 2 番目のステートメントは Oracle のネイティブ構文を使用し、相互運用できません。

SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status  
   FROM {oj Customers LEFT OUTER JOIN Orders ON Customers.CustID=Orders.CustID}  
   WHERE Orders.Status='OPEN'  
  
SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status  
   FROM Customers, Orders  
   WHERE (Orders.Status='OPEN') AND (Customers.CustID= Orders.CustID(+))  

データ ソースとドライバーがサポートする外部結合の種類を決定するために、アプリは、SQL_OJ_CAPABILITIES フラグを使用して SQLGetInfo を呼び出します。 サポートされる可能性のある外部結合のタイプは、左、右、完全、または入れ子の外部結合、ON 句のカラム名がOUTER JOIN 句のそれぞれのテーブル名と同じ順序でない外部結合、外部結合と組み合わせた内部結合、および任意の ODBC 比較演算子を使用した外部結合です。 SQL_OJ_CAPABILITIES情報型が 0 を返す場合、外部結合句はサポートされません。