Combine les enregistrements de deux tables chaque fois qu’un champ commun contient des valeurs correspondantes.
Syntaxe
FROM table1 INNER JOIN table2 ON table1.field1compopr table2.field2
L’opération INNER JOIN (jointure interne ) comprend les parties suivantes :
Partie |
Description |
table1, table2 |
Nom des tables dont les enregistrements sont combinés. |
champ1, champ2 |
Noms des champs joints. S’ils ne sont pas numériques, les champs doivent avoir le même type de données et contenir des données de nature identique, mais leurs noms peuvent être différents. |
oprcomp |
Tout opérateur de comparaison relationnel tel que : "=," "<," ">," "<=," ">=," ou "<>." |
Remarques
Vous pouvez utiliser une opération de jointure interne (INNER JOIN) dans toute clause FROM. Il s’agit du type de jointure le plus courant. Les jointures internes combinent des enregistrements de deux tables chaque fois qu’il existe des valeurs correspondantes dans un champ commun aux deux tables.
Vous pouvez utiliser l’opération INNER JOIN avec les tables Departments (Départements) et Employees (Employés) pour sélectionner tous les employés de chaque département. En revanche, pour sélectionner tous les départements (même si aucun employé ne leur est assigné) ou tous les employés (même si certains ne sont assignés à aucun département), vous pouvez utiliser une opération de jointure gauche (LEFT JOIN) ou droite (RIGHT JOIN) pour créer une jointure externe.
Si vous essayez de joindre des champs contenant des données de type Mémo ou Objet OLE, une erreur se produit.
Vous pouvez joindre deux champs numériques quelconques de types similaires. Par exemple, vous pouvez opérer une jointure sur des champs NuméroAuto et Long parce qu’ils sont de types similaires. En revanche, vous ne pouvez pas joindre des types de champs Simple et Double.
L’exemple suivant montre comment joindre les tables Categories (Catégories) et Products (Produits) sur le champ CategoryID :
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Dans l’exemple précédent, CategoryID est le champ joint, mais il n’est pas inclus dans le résultat de la requête, car il n’est pas inclus dans l’instruction SELECT. Pour inclure le champ joint, incluez son nom dans l’instruction SELECT, dans ce cas, Categories.CategoryID.
Vous pouvez également lier plusieurs clauses ON dans une instruction JOIN, en utilisant la syntaxe suivante :
SELECT fields
FROM table1 INNER JOIN table2 ON table1.field1compoprtable2.field1 AND ON table1.field2compoprtable2.field2) OR ON table1.field3compoprtable2.field3)];Vous pouvez également imbriquer des instructions JOIN en utilisant la syntaxe suivante :
SELECT fields
FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON table3.field3compoprtablex.fieldx)] ON table2.field2compoprtable3.field3) ON table1.field1compoprtable2.field2;Une jointure gauche (LEFT JOIN) ou droite (RIGHT JOIN) peut être imbriquée dans une jointure interne, mais une jointure interne ne peut pas être imbriquée dans une jointure gauche ou droite.