TOP

Leçon SQL 10. Joindre des tables (INNER JOIN)

La fonctionnalité la plus puissante du langage SQL est la possibilité de combiner différentes tables dans la RAM du SGBD lors de l'exécution d'une requête. Les jointures sont très souvent utilisées pour l’analyse des données. En règle générale, les données sont dans des tables différentes, ce qui permet de les stocker plus efficacement (puisque les informations ne sont pas dupliquées), simplifie le traitement des données et permet d'évoluer la base de données (il est possible d'ajouter de nouvelles tables avec des informations supplémentaires) .

Les tables de base de données utilisées dans le SGBD MS Access sont des tables relationnelles, c'est-à-dire que toutes les tables peuvent être liées les unes aux autres par des champs communs.


1. Création d'une combinaison de tables (JOINS)

La combinaison de tableaux est une procédure très simple. Il est nécessaire de préciser toutes les tables qui seront incluses dans la combinaison et « d'expliquer » au SGBD comment elles seront liées les unes aux autres. La connexion se fait à l'aide du mot WHERE, par exemple :

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers, Sumproduct 
WHERE Sellers.City = Sumproduct.City

En combinant les deux tableaux, nous avons pu voir quels produits vend chaque vendeur. Examinons de plus près le code de la requête, car il est légèrement différent d'une requête normale. L'instruction SELECT commence par spécifier les colonnes que nous voulons afficher, mais ces champs sont dans des tables différentes, la clause FROM contient deux tables que nous voulons joindre dans l'instruction SELECT, les tables sont jointes à l'aide du mot WHERE, qui spécifie les colonnes joindre. Vous devez spécifier le nom complet du champ (Table.Field), puisque le champ City est dans les deux tables.

2. Combinaison interne (INNER JOIN)

Dans l'exemple précédent, nous avons utilisé le mot WHERE pour combiner des tables, qui effectue une vérification basée sur l'équivalence de deux tables. Une combinaison de ce type est également appelée « combinaison interne ». Il existe également une autre façon de combiner des tableaux, qui indique clairement le type de combinaison. Prenons l'exemple suivant :

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers 
INNER JOIN Sumproduct 
ON Sellers.City = Sumproduct.City

Dans cette requête, au lieu de WHERE, nous avons utilisé la construction INNER JOIN ... ON ..., qui a donné un résultat similaire. Bien que la combinaison avec la clause WHERE soit plus courte, il est quand même préférable d'utiliser INNER JOIN car elle est plus flexible, comme cela sera expliqué plus en détail dans les sections suivantes.