Share via


Opérations de jointure

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 = y.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

Voir aussi

Tâches

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

Comment : effectuer des opérations de jointure à l'aide de clés composites (Guide de programmation C#)

Comment : joindre du contenu issu de différents fichiers (LINQ)

Comment : classer les résultats d'une clause Join (Guide de programmation C#)

Comment : effectuer des opérations de jointure personnalisées (Guide de programmation C#)

Comment : effectuer des jointures groupées (Guide de programmation C#)

Comment : effectuer des jointures internes (Guide de programmation C#)

Comment : effectuer des jointures externes gauches (Guide de programmation C#)

Comment : remplir des collections d'objets issues de plusieurs sources (LINQ)

Référence

System.Linq

Types anonymes (Guide de programmation C#)

join, clause (Référence C#)

Join, clause (Visual Basic)

Concepts

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

Types anonymes (Visual Basic)

Types de jointures