Partager via


Jointures externes

ODBC prend en charge la syntaxe sql-92 de gauche, de droite et de jointure externe complète. La séquence d’échappement pour les jointures externes est

{ojouter-join}

la jointure externe est

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

la référence table spécifie un nom de table et la condition de recherche spécifie la condition de jointure entre les références de table.

Une demande de jointure externe doit apparaître après le mot clé FROM et avant la clause WHERE (le cas échéant). Pour obtenir des informations de syntaxe complètes, consultez séquence d’échappement de jointure externe dans l’annexe C : Grammaire SQL.

Par exemple, les instructions SQL suivantes créent le même jeu de résultats qui répertorie tous les clients et affiche les commandes ouvertes. La première instruction utilise la syntaxe de séquence d’échappement. La deuxième instruction utilise la syntaxe native pour Oracle et n’est pas interopérable.

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

Pour déterminer les types de jointures externes qu’une source de données et un pilote prennent en charge, une application appelle SQLGetInfo avec l’indicateur SQL_OJ_CAPABILITIES. Les types de jointures externes qui peuvent être prises en charge sont des jointures externes gauche, droite, complètes ou imbriquées ; jointures externes dans lesquelles les noms de colonnes de la clause ON n’ont pas le même ordre que leurs noms de table respectifs dans la clause OUTER JOIN ; jointures internes conjointement avec jointures externes ; jointures externes à l’aide d’un opérateur de comparaison ODBC. Si le type d’informations SQL_OJ_CAPABILITIES retourne 0, aucune clause de jointure externe n’est prise en charge.