Join | Guida di Qlik Cloud
Vai al contenuto principale Passa a contenuto complementare

Join

Il prefisso join unisce la tabella caricata a una tabella denominata esistente oppure all’ultima tabella di dati creata in precedenza.

L'effetto dell'unione dei dati consiste nell'estendere la tabella dati di destinazione con un set aggiuntivo di campi o attributi, ovvero quelli non ancora presenti nella tabella dati di destinazione. Eventuali nomi di campo comuni tra il set di dati di origine e la tabella dati di destinazione vengono utilizzati per determinare come associare i nuovi record in arrivo. Questa operazione è comunemente definita "natural join". Un'operazione di join Qlik può portare la tabella dati di destinazione risultante ad avere più o meno record rispetto a quelli iniziali, a seconda dell'univocità dell'associazione di join e del tipo di join impiegato.

video thumbnail

Tipi di join

Esistono quattro tipi di join:

  • Left join

  • Inner join

  • Outer join

  • Right join

Esempi di set di risultati da diversi tipi di operazioni di join

Esempi di set di risultati da diversi tipi di operazioni di join, con una rappresentazione prima e dopo delle tabelle dati a seguito di ciascuna operazione. Gli input consistono in una tabella dati di destinazione e un set di dati in arrivo. La tabella dati di destinazione ha due colonne con due voci di riga per i campi 'Trade ID' e 'Asset Class'. I dati in arrivo hanno due colonne con due voci di riga per i campi 'Trade ID' e 'Exchange'. Il Left Join mantiene la tabella dati di destinazione iniziale e aggiunge una terza colonna con tutto vuoto tranne l'aggiunta di una delle voci di riga 'Exchange'. L'Inner Join crea una tabella con una riga Trade ID e una terza colonna, ancora una volta, per la voce di riga 'Exchange'. L'Outer Join mantiene la tabella dati di destinazione e aggiunge una terza colonna, insieme a una terza riga a cui viene aggiunta la seconda riga del set di dati in arrivo. Il Right Join rimuove la seconda voce di riga della tabella dati di destinazione e la sostituisce con le informazioni della seconda voce di riga del set di dati in arrivo, aggiungendo una terza colonna nel processo.

Left join

I left join sono il tipo di join più comune. Ad esempio, se si dispone di un set di dati di transazioni e si desidera combinarlo con un set di dati di riferimento, in genere si utilizza un Left Join. Si caricherebbe prima la tabella delle transazioni, quindi si caricherebbe il set di dati di riferimento unendolo tramite un prefisso Left Join alla tabella delle transazioni già caricata. Un Left Join manterrebbe tutte le transazioni così come sono e aggiungerebbe i campi dei dati di riferimento supplementari laddove viene trovata una corrispondenza.

Left join

Diagramma che delinea, a un livello elevato, le combinazioni di dati che si verificano durante un left join.

Inner join

Quando si dispone di due set di dati in cui interessano solo i risultati in cui è presente un'associazione corrispondente, considerare l'utilizzo di un Inner Join. Ciò eliminerà tutti i record sia dai dati di origine caricati che dalla tabella dati di destinazione se non viene trovata alcuna corrispondenza. Di conseguenza, ciò potrebbe lasciare la tabella dati di destinazione con meno record rispetto a prima dell'operazione di join.

Inner join

Diagramma che delinea, a un livello elevato, le combinazioni di dati che si verificano durante un inner join.

Outer join (predefinito)

Quando è necessario mantenere sia i record di destinazione che tutti i record in arrivo, utilizzare un Outer Join. Laddove non viene trovata alcuna corrispondenza, ogni set di record viene comunque mantenuto mentre i campi dal lato opposto del join rimarranno non popolati (null).

Se la parola chiave del tipo viene omessa, il tipo di join predefinito è un outer join.

Outer join

Diagramma che delinea, a un livello elevato, le combinazioni di dati che si verificano durante un outer join.

Right join

Questo tipo di join mantiene tutti i record che stanno per essere caricati, riducendo al contempo i record nella tabella presa di mira dal join solo a quei record in cui c'è una corrispondenza di associazione nei record in arrivo. Questo è un tipo di join di nicchia che a volte viene utilizzato come mezzo per ridurre una tabella di record pre-caricata a un sottoinsieme richiesto.

Right join

Diagramma che delinea, a un livello elevato, le combinazioni di dati che si verificano durante un right join.

Cross join

Nota informaticaSe non ci sono nomi di campo in comune tra l'origine e la destinazione di un'operazione di join, il join risulterà in un prodotto cartesiano di tutte le righe: questo è chiamato "cross join".

Esempio di set di risultati da un'operazione di "cross join"

Confronto prima e dopo dei dati di input con l'output dopo un'operazione di cross join (che può comportare un'operazione di join di qualsiasi tipo). Gli input sono una tabella dati di destinazione e un set di dati in arrivo. La tabella dati di destinazione consiste in tre colonne, con due voci di riga. Le colonne sono 'Trade ID', 'Base Currency' e 'Amount'. Il set di dati in arrivo ha due colonne ('Trade Currency' e 'Rate') e due voci di riga. La tabella risultante ha cinque colonne, che sono 'Trade ID', 'Base Currency', 'Amount', 'Target Currency' e 'Rate'. Ci sono quattro voci di riga, che combinano tutti i dati. Ogni voce 'Trade ID' ha due righe con dati diversi negli altri campi.

Sintassi e argomenti

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

Argomenti
Argomento Descrizione
tablename La tabella denominata da confrontare con la tabella caricata.
loadstatementoppure selectstatement L'istruzione LOAD o SELECT per la tabella caricata.

Argomenti correlati

Questi argomenti possono aiutare a lavorare con questa funzione:

Argomenti correlati
Argomento Descrizione
Combinazione di tabelle con Join e Keep Questo argomento fornisce un'ulteriore spiegazione dei concetti di "unione" (joining) e "mantenimento" (keeping) dei set di dati.
Keep Il prefisso di caricamento Keep è simile al prefisso Join, ma non combina i set di dati di origine e di destinazione. Invece, riduce ogni set di dati in base al tipo di operazione adottata (inner, outer, left o right).

Esempi di script di caricamento - Left join

Un left join mantiene tutti i record dalla tabella principale (di destinazione) e aggiunge i dati corrispondenti da una seconda tabella (di origine). Se non c'è corrispondenza nell'origine, il record della tabella principale appare comunque, ma con campi vuoti dalla tabella di origine.

Esempi di script di caricamento - Inner join

Un inner join mantiene solo i record che esistono in entrambe le tabelle (basato su valori di campo corrispondenti).

Esempi di script di caricamento - Outer join

Un outer join mantiene tutti i record da entrambe le tabelle. Laddove non c'è corrispondenza, i campi vengono lasciati vuoti.

Esempi di script di caricamento - Right join

Un right join mantiene tutti i record dalla tabella di origine e aggiunge le informazioni corrispondenti dalla tabella di destinazione. Se la tabella di destinazione non ha corrispondenze, i campi da essa provengono vuoti.

Risoluzione dei problemi - Cross join

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – ti pregiamo di farcelo sapere!