Delen via


Externe Koppelingen

ODBC ondersteunt de SQL-92 syntaxis voor left, right en full outer join. De escape-sequentie voor outer joins is

{ojouter-join}

waar outer-join is

tabelverwijzing {LEFT | RECHTS | FULL} OUTER JOIN {tabelverwijzing | outer-join} ONzoekvoorwaarde

tabelverwijzing geeft een tabelnaam op en met zoekvoorwaarde wordt de joinvoorwaarde tussen de tabelverwijzingen opgegeven.

Een outer join-aanvraag moet worden weergegeven na het trefwoord FROM en vóór de WHERE-component (indien aanwezig). Zie Outer Join Escape Sequence in bijlage C: SQL Grammar voor volledige syntaxisinformatie.

Met de volgende SQL-instructies wordt bijvoorbeeld dezelfde resultatenset gemaakt waarin alle klanten worden vermeld en welke openstaande orders hebben. De eerste instructie maakt gebruik van de escape-reekssyntaxis. De tweede instructie maakt gebruik van de systeemeigen syntaxis voor Oracle en is niet 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(+))  

Om te bepalen welke typen outer joins een gegevensbron en stuurprogramma ondersteunen, roept een toepassing SQLGetInfo aan met de SQL_OJ_CAPABILITIES vlag. De typen outer joins die mogelijk worden ondersteund, zijn links, rechts, volledig of geneste outer joins; outer joins waarin de kolomnamen in de ON-component niet dezelfde volgorde hebben als hun respectieve tabelnamen in de OUTER JOIN-component ; inner joins in combinatie met outer joins; en outer joins met behulp van een ODBC-vergelijkingsoperator. Als het SQL_OJ_CAPABILITIES informatietype 0 retourneert, wordt er geen outer join-component ondersteund.