Share via


外部聯結

ODBC 支援 SQL-92 左方外部聯結、右方外部聯結和完整外部聯結語法。 外部聯結的逸出序列為

{ojouter-join}

其中 outer-join

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

table-reference 會指定資料表名稱,而 search-condition 會指定table-reference之間的聯結條件。

如果存在外部聯結要求,則必須出現在 FROM 關鍵字之後,以及 WHERE 子句之前。 如需完整的語法資訊,請參閱附錄 C:SQL 文法中的外部聯結逸出序列

例如,下列 SQL 陳述式會建立相同的結果集,其中列出所有客戶,並顯示哪些客戶具有待處理訂單。 第一個陳述式會使用逸出序列語法。 第二個語句會使用 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,則不支援任何外部聯結子句。