Äußere Verknüpfungen

ODBC unterstützt die SQL-92-Syntax von links, rechts und vollständiger äußerer Verknüpfung. Die Escapesequenz für äußere Verknüpfungen ist

{ojouter-join}

dabei befindet sich die äußere Verknüpfung

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

Der Tabellenverweis gibt einen Tabellennamen an, und die Suchbedingung gibt die Verknüpfungsbedingung zwischen den Tabellenverweisen an.

Eine äußere Verknüpfungsanforderung muss nach dem FROM-Schlüsselwort (keyword) und vor der WHERE-Klausel (sofern vorhanden) angezeigt werden. Vollständige Syntaxinformationen finden Sie unter Outer Join Escape Sequence in Anhang C: SQL Grammar.

Die folgenden SQL-Anweisungen erstellen z. B. dasselbe Resultset, das alle Kunden auflistet und zeigt, welche offenen Bestellungen vorhanden sind. Die erste Anweisung verwendet die Escapesequenzsyntax. Die zweite Anweisung verwendet die native Syntax für Oracle und ist nicht interoperabel.

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(+))  

Um die Typen von äußeren Verknüpfungen zu bestimmen, die von einer Datenquelle und einem Treiber unterstützt werden, ruft eine Anwendung SQLGetInfo mit dem SQL_OJ_CAPABILITIES Flag auf. Die Typen von äußeren Verknüpfungen, die unterstützt werden können, sind linke, rechte, vollständige oder geschachtelte äußere Verknüpfungen; äußere Verknüpfungen, bei denen die Spaltennamen in der ON-Klausel nicht die gleiche Reihenfolge aufweisen wie die jeweiligen Tabellennamen in der OUTER JOIN-Klausel ; innere Verknüpfungen in Verbindung mit äußeren Verknüpfungen und äußere Verknüpfungen mit jedem ODBC-Vergleichsoperator. Wenn der SQL_OJ_CAPABILITIES Informationstyp 0 zurückgibt, wird keine äußere Verknüpfungsklausel unterstützt.