Share via


Opérations de jointure

Mise à jour : novembre 2007

Une jointure de deux sources de données est l'association d'objets dans une source de données avec des objets qui partagent un attribut commun dans une autre source de données.

La jointure est une opération importante dans les requêtes qui ciblent les sources de données dont les relations ne peuvent pas être suivies directement. Dans la programmation orientée objet, cela pourrait signifier une corrélation entre objets qui n'est pas modélisée, telle que la direction descendante d'une relation unidirectionnelle. On parle par exemple de relation unidirectionnelle lorsqu'une classe Customer possède une propriété de type City, mais que la classe City ne possède pas de propriété correspondant à une collection d'objets Customer. Si vous avez une liste d'objets City et que vous souhaitez rechercher tous les clients de chaque ville, vous pouvez utiliser une opération de jointure.

Les méthodes de jointure fournies dans l'infrastructure LINQ sont Join et GroupJoin. Ces méthodes effectuent des équijointures ou des jointures qui associent deux sources de données en fonction de l'égalité de leurs clés. Pour la comparaison, Transact-SQL prend en charge des opérateurs de jointure autres que 'égal', par exemple, l'opérateur 'inférieur à'. Dans la terminologie de base de données relationnelle, Join implémente une jointure interne, un type de jointure dans lequel seuls les objets qui ont une correspondance dans l'autre groupe de données sont retournés. La méthode GroupJoin n'a aucun équivalent direct dans la terminologie de base de données relationnelle, mais elle implémente un sur-ensemble de jointures internes et de jointures externes gauches. Une jointure externe gauche est une jointure qui retourne chaque élément de la première source de données (gauche), même si elle n'a pas d'éléments corrélés dans l'autre source de données.

L'illustration suivante présente une vue conceptuelle de ces deux groupes et des éléments de ces groupes qui sont inclus dans une jointure interne ou une jointure externe gauche.

Deux cercles se chevauchant montrant l'interne/externe.

Méthodes

Nom de la méthode

Description

Syntaxe d'expression de requête C#

Syntaxe d'expression de requête Visual Basic

Informations supplémentaires

Join

Joint deux séquences selon les fonctions de sélection de clé et extrait des paires de valeurs.

join … in … on … equals …

From x In …, y In … Where x.a = b.a

- ou -

Join … [As …]In … On …

Enumerable.Join

Queryable.Join

GroupJoin

Joint deux séquences selon les fonctions de sélection de clé et regroupe les résultats correspondants pour chaque élément.

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin

Queryable.GroupJoin

En savoir plus sur les opérations de jointure

Voir aussi

Tâches

Procédure : formuler des jointures et des requêtes de produit croisé (LINQ to SQL)

Concepts

Vue d'ensemble des opérateurs de requête standard

Types anonymes

Types de jointures

Référence

System.Linq

Types anonymes (Guide de programmation C#)