Condividi tramite


Operazioni di join

Aggiornamento: novembre 2007

Un'operazione di join di due origini dati è l'associazione di oggetti in un'origine dati con gli oggetti che condividono un attributo comune in un'altra origine dati.

L'operazione di join è un'operazione importante nelle query destinate alle origini dati le cui relazioni reciproche non possono essere eseguite direttamente. Nella programmazione orientata a oggetti può rappresentare una correlazione tra oggetti non modellata, ad esempio la direzione inversa di una relazione unidirezionale. Un esempio di una relazione unidirezionale è una classe Customer contenente una proprietà di tipo City, ma la classe City non contiene una proprietà equivalente a un insieme di oggetti Customer. Se si dispone di un elenco di oggetti City e si desidera cercare tutti i clienti di ogni città, è possibile a tale scopo utilizzare un'operazione di join.

I metodi di join forniti nel framework LINQ sono Join e GroupJoin. Questi metodi eseguono equijoins o join che creano una corrispondenza tra due origini dati in base all'uguaglianza delle relative chiavi. Per eseguire il confronto, Transact-SQL supporta gli operatori di join tranne 'equals', ad esempio l'operatore 'less than'. In termini di database relazionale, Join implementa un inner join, un tipo di join in cui vengono restituiti solo quegli oggetti che hanno una corrispondenza nell'altro dataset. Il metodo GroupJoin non dispone di un equivalente diretto in termini di database relazionale, ma implementa un superset di inner join e left outer join. Un left outer join è un join che restituisce ogni elemento della prima origine dati (a sinistra), anche se non ha elementi correlati nell'altra origine dati.

Nella figura seguente viene illustrata una visione concettuale di due insiemi e degli elementi all'interno di tali insiemi inclusi in un inner join o in un left outer join.

Due cerchi sovrapposti che mostrano interno/esterno

Metodi

Nome metodo

Descrizione

Sintassi dell'espressione di query in C#

Sintassi dell'espressione di query in Visual Basic

Ulteriori informazioni

Join

Unisce due sequenze in base alle funzioni del selettore principale ed estrae le coppie di valori.

join … in … on … equals …

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

-oppure-

Join … [As …]In … On …

Enumerable.Join

Queryable.Join

GroupJoin

Unisce due sequenze in base alle funzioni del selettore principale e raggruppa le corrispondenze risultanti per ogni elemento.

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin

Queryable.GroupJoin

Ulteriori informazioni sull'esecuzione delle operazioni di join

Vedere anche

Attività

Procedura: formulare join e query di prodotto incrociato (LINQ to SQL)

Concetti

Cenni preliminari sugli operatori di query standard

Tipi anonimi

Tipi di join

Riferimenti

System.Linq

Tipi anonimi (Guida per programmatori C#)