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.
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 … |
|
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 … |
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