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 è quello di estendere la tabella di destinazione di un insieme aggiuntivo di campi o attributi, vale a dire quelli che non sono già presenti nella tabella di destinazione. Qualsiasi nome di campo comune tra il set di dati di origine e la tabella di destinazione viene utilizzato per determinare come associare i nuovi record in ingresso. Questa viene comunemente indicata come "unione naturale". Un'operazione Join Qlik può fare in moco che la tabella di destinazione risultante abbia più o meno record di quelli con cui è stata creata, a seconda dell'unicità dell'associazione join e del tipo di operazione join utilizzato.
Esistono quattro tipi di join:
Left join
Le operazioni Left join sono il tipo più utilizzato. Ad esempio, se si dispone di un set di dati per una transazione e si desidera combinarlo con un set di dati di riferimento, in genere si utilizza Left Join. Per prima cosa è necessario caricare la tabella delle transazioni, quindi caricare il set di dati di riferimento e unirlo tramite un prefisso Left Join alla tabella delle transazioni già caricata. Left Join consente di mantenere tutte le transazioni così come sono e di aggiungere i campi dati di riferimento supplementari in cui viene trovata una corrispondenza.
Inner join
Quando si dispone di due set di dati in cui sono importanti solo i risultati in cui è presente un'associazione di corrispondenza, considerare l'utilizzo di Inner Join. Ciò consente di eliminare tutti i record sia dai dati di origine caricati che dalla tabella di destinazione se non viene trovata alcuna corrispondenza. Di conseguenza, l'operazione può la tabella di destinazione con meno record rispetto a prima che venisse completata l'operazione join.
Outer join
Quando è necessario conservare sia i record di destinazione che tutti i record in entrata, utilizzare Outer Join. Se non viene trovata alcuna corrispondenza, ogni set di record viene comunque conservato, mentre i campi dal lato opposto del JOIN non verranno popolati (null).
Se la parola chiave del tipo viene omessa, il tipo di join predefinito è un outer join.
Right join
Questo tipo di join mantiene tutti i record che stanno per essere caricati, riducendo i record nella tabella di destinazione tramite l'operazione di join solo ai record in cui è presente una corrispondenza di associazione nei record in entrata. Questo è un tipo di join di nicchia che viene talvolta utilizzato come mezzo per ridurre una tabella di record già caricata precedentemente in un sottoinsieme richiesto.
Nota informaticaSe non ci sono nomi di campo in comune tra l'origine e la destinazione di un'operazione join, questa darà come risultato un prodotto cartesiano di tutte le righe, che viene definito "cross join".
Sintassi:
[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.
I seguenti argomenti possono aiutarti a lavorare con questa funzione:
Il prefisso di caricamento Keep è simile al prefisso Join, ma non combina i set di dati di origine e di destinazione. Invece, ritaglia ogni set di dati in base al tipo di operazione adottata (inner, outer, left o right).
Esempio 1 - Left join: Miglioramento dei dati di una tabella di destinazione con un set di dati di riferimento
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che rappresenta i record delle modifiche, che viene caricato in una tabella denominata Changes. Questa include il campo chiave "Status ID".
Un secondo set di dati che rappresenta gli stati di modifica, che viene caricato e combinato con i record di modifica originali unendoli con un prefisso di caricamento Join a sinistra.
Questa operazione di left join assicura che i record di modifica rimangano intatti durante l'aggiunta di attributi di stato in cui viene trovata una corrispondenza nei record di stato in entrata in base a un ID di stato comune.
Script di caricamento
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10103 1 02/04/2022 29/05/2022 Medium
10185 2 23/06/2022 08/09/2022 None
10323 1 08/11/2022 26/11/2022 High
10326 2 11/11/2022 05/12/2022 None
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
10264 1 10/09/2022 17/10/2022 Medium
10116 1 15/04/2022 24/04/2022 None
10187 2 25/06/2022 24/08/2022 Low
] (delimiter is '\t');
Status:
Left Join (Changes)
Load * inline [
Status ID Status Sub Status
1 Open Not Started
2 Open Started
3 Closed Completed
4 Closed Cancelled
5 Closed Obsolete
] (delimiter is '\t');
Risultati
Aprire il sistema di visualizzazione del modello dati e annotare la forma del modello di dati. È presente una sola tabella denormalizzata. Questa comprende una combinazione di tutti i record di modifica originali, con gli attributi di stato corrispondenti uniti a ciascun record di modifica.
Modello di dati interni risultante
Modifiche
Cambia ID
ID stato
Data di inizio programmata
Data di fine programmata
Impatto aziendale
Stato
Stato secondario
Se si espande la finestra di anteprima nel sistema di visualizzazione modello dati, viene visualizzata una parte di questo set di risultati completo organizzato in una tabella:
Anteprima della tabella Modifiche nel sistema di visualizzazione modello dati
Cambia ID
ID stato
Data di inizio programmata
Data di fine programmata
Impatto aziendale
Stato
Stato secondario
10030
4
19/01/2022
23/02/2022
Nessuno
Chiuso
Annullato
10031
3
20/01/2022
25/03/2022
Scarso
Chiuso
Operazione completata
10015
3
04/01/2022
15/02/2022
Scarso
Chiuso
Operazione completata
10103
1
02/04/2022
29/05/2022
Medio
Aperto
Non avviato
10116
1
15/04/2022
24/04/2022
Nessuno
Apri
Non avviato
10134
1
03/05/2022
08/07/2022
Scarso
Apri
Non avviato
10264
1
10/09/2022
17/10/2022
Medio
Aperto
Non avviato
10040
1
29/01/2022
22/04/2022
Nessuno
Apri
Non avviato
10323
1
08/11/2022
26/11/2022
Elevati
Aperto
Non avviato
10187
2
25/06/2022
24/08/2022
Scarso
Aperto
Avviato
10185
2
23/06/2022
08/09/2022
Nessuno
Aperto
Avviato
10220
2
28/07/2022
06/09/2022
Nessuno
Aperto
Avviato
10326
2
11/11/2022
05/12/2022
Nessuno
Aperto
Avviato
10138
2
07/05/2022
03/08/2022
Nessuno
Aperto
Avviato
10334
2
19/11/2022
06/02/2023
Scarso
Aperto
Avviato
Dato che la quinta riga nella tabella di stato (ID stato: "5", Stato: "Chiuso", Stato secondario: "Obsoleto") non corrisponde a nessuno dei record nella tabella delle modifiche, le informazioni in questa riga non appaiono nel set di risultati soprastante.
Tornare all'Editor caricamento dati. Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: Status.
Aggiungere questa misura:
=Count([Change ID])
Ora è possibile verificare il numero di modifiche per stato.
Tabella dei risultati
Stato
=Count([Change ID])
Aperto
12
Chiuso
3
Esempio 2 – Inner join: Combinazione solo dei record corrispondenti
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che rappresenta i record delle modifiche, che viene caricato in una tabella denominata Changes.
Un secondo set di dati che rappresenta i record delle modifiche originate dal sistema di origine JIRA. Questo viene caricato e combinato con i record originali unendoli con un prefisso di caricamento Inner Join.
Inner Join garantisce che vengano mantenuti solo i cinque record delle modifiche che si trovano in entrambi i set di dati.
Script di caricamento
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10103 1 02/04/2022 29/05/2022 Medium
10185 2 23/06/2022 08/09/2022 None
10323 1 08/11/2022 26/11/2022 High
10326 2 11/11/2022 05/12/2022 None
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
10264 1 10/09/2022 17/10/2022 Medium
10116 1 15/04/2022 24/04/2022 None
10187 2 25/06/2022 24/08/2022 Low
] (delimiter is '\t');
JIRA_changes:
Inner Join (Changes)
Load
[Ticket ID] AS [Change ID],
[Source System]
inline
[
Ticket ID Source System
10000 JIRA
10030 JIRA
10323 JIRA
10134 JIRA
10334 JIRA
10220 JIRA
20000 TFS
] (delimiter is '\t');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
Source System
Change ID
Business Impact
Ora è possibile esaminare i cinque record risultanti. La tabella risultante da Inner Join includerà solo i record con informazioni corrispondenti in entrambi i set di dati.
Tabella dei risultati
Sistema di origine
Cambia ID
Impatto aziendale
JIRA
10030
Nessuno
JIRA
10134
Scarso
JIRA
10220
Nessuno
JIRA
10323
Elevati
JIRA
10334
Scarso
Esempio 3 – Outer join: Combinazione di set di record sovrapposti
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che rappresenta i record delle modifiche, che viene caricato in una tabella denominata Changes.
Un secondo set di dati che rappresenta i record delle modifiche originate dal sistema di origine JIRA, che viene caricato e combinato con i record originali unendoli con un prefisso di caricamento Outer Join.
Ciò garantisce che tutti i record delle modifiche sovrapposte di entrambi i set di dati vengano mantenuti.
Script di caricamento
// 8 Change records
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
] (delimiter is '\t');
// 6 Change records
JIRA_changes:
Outer Join (Changes)
Load
[Ticket ID] AS [Change ID],
[Source System]
inline
[
Ticket ID Source System
10030 JIRA
10323 JIRA
10134 JIRA
10334 JIRA
10220 JIRA
10597 JIRA
] (delimiter is '\t');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
Source System
Change ID
Business Impact
Ora è possibile esaminare i 10 record risultanti.
Tabella dei risultati
Sistema di origine
Cambia ID
Impatto aziendale
JIRA
10030
Nessuno
JIRA
10134
Scarso
JIRA
10220
Nessuno
JIRA
10323
-
JIRA
10334
Scarso
JIRA
10597
-
-
10015
Scarso
-
10031
Scarso
-
10040
Nessuno
-
10138
Nessuno
Esempio 4 – Right join: Semplificazione di una tabella di destinazione da un set di dati master secondario
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che rappresenta i record delle modifiche, che viene caricato in una tabella denominata Changes.
Un secondo set di dati che rappresenta i record di modifica provenienti dal sistema di origine Teamwork. Questo viene caricato e combinato con i record originali unendolo con un prefisso di caricamento Right Join.
Ciò garantisce che vengano mantenuti solo i record delle modifiche Teamwork, senza perdere alcun record Teamwork se la tabella di destinazione non ha nessuna corrispondenza Change ID.
Script di caricamento
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10103 1 02/04/2022 29/05/2022 Medium
10185 2 23/06/2022 08/09/2022 None
10323 1 08/11/2022 26/11/2022 High
10326 2 11/11/2022 05/12/2022 None
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
10264 1 10/09/2022 17/10/2022 Medium
10116 1 15/04/2022 24/04/2022 None
10187 2 25/06/2022 24/08/2022 Low
] (delimiter is '\t');
Teamwork_changes:
Right Join (Changes)
Load
[Ticket ID] AS [Change ID],
[Source System]
inline
[
Ticket ID Source System
10040 Teamwork
10015 Teamwork
10103 Teamwork
10031 Teamwork
50231 Teamwork
] (delimiter is '\t');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
Source System
Change ID
Business Impact
Ora è possibile esaminare i cinque record risultanti.
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!