Der join-Zusatz kombiniert die geladene Tabelle mit einer bestehenden benannten Tabelle bzw. mit der zuletzt erstellten Datentabelle.
Die Auswirkung der Verknüpfung von Daten besteht darin, die Zieltabelle durch einen weiteren Satz Felder oder Attribute zu erweitern, nämlich diejenigen, die in der Zieltabelle noch nicht vorhanden sind. Jeder gemeinsame Feldname zwischen dem Quelldatensatz und der Zieltabelle wird dazu verwendet, zu ermitteln, wie die neuen eingehenden Datensätze verknüpft werden. Dies wird in der Regel als „Natural Join“ bezeichnet. Ein QlikJoin-Vorgang kann dazu führen, dass die entstehende Tabelle mehr oder weniger Datensätze als anfänglich hat, abhängig von der Eindeutigkeit der Join-Verknüpfung und dem Typ des verwendeten Joins.
Es gibt vier Join-Typen:
Left Join
Left Joins sind der üblichste Join-Typ. Wenn Sie beispielsweise einen Transaktionsdatensatz mit einem Referenzdatensatz kombinieren möchten, verwenden Sie in der Regel einen Left Join. In diesem Fall laden Sie zuerst die Transaktionstabelle, dann den Referenzdatensatz, während Sie ihn über einen Left Join-Zusatz mit der bereits geladenen Transaktionstabelle verknüpfen. Ein Left Join behält alle Transaktionen unverändert bei und fügt die ergänzenden Referenzdatenfelder hinzu, wenn eine Übereinstimmung gefunden wird.
Inner Join
Wenn Sie zwei Datensätze haben, bei denen Sie nur an Ergebnissen interessiert sind, wenn eine übereinstimmende Verknüpfung vorliegt, können Sie einen Inner Join verwenden. Dadurch werden alle Datensätze sowohl aus den geladenen Quelldaten als auch aus der Zieltabelle entfernt, wenn keine Übereinstimmung gefunden wird. Als Ergebnis enthält Ihre Zieltabelle dann möglicherweise weniger Datensätze als vor dem Join-Vorgang.
Outer Join
Wenn Sie sowohl die Zieldatensätze als auch alle eingehenden Datensätze beibehalten möchten, verwenden Sie einen Outer Join. Wo keine Übereinstimmung gefunden wird, wird jeder Satz Datensätze dennoch beibehalten, während die Felder auf der gegenüber liegenden Seite des Join unausgefüllt (null) bleiben.
Wenn das Schlüsselwort für den Typ ausgelassen wird, ist Outer Join der Standard-Join-Typ.
Right Join
Bei diesem Join-Typ werden alle zu ladenden Datensätze beibehalten, während die Datensätze in der Zieltabelle des Join auf diejenigen reduziert werden, bei denen eine Übereinstimmung bei den eingehenden Datensätzen vorliegt. Dies ist ein Nischen-Join-Typ, der manchmal als Möglichkeit zum Verkleinern einer bereits geladenen Datensatztabelle auf einen erforderlichen Teilsatz verwendet wird.
InformationshinweisWenn die Quelle und das Ziel eines Join-Vorgangs keine gemeinsamen Feldnamen enthalten, ergibt der Join ein kartesianisches Produkt aller Zeilen – dies wird als „Cross Join“ bezeichnet.
Syntax:
[inner | outer | left | right ]Join[ (tablename )
]( loadstatement | selectstatement )
Argumente
Argument
Beschreibung
tablename
Die benannte Tabelle, die mit der geladenen Tabelle verglichen wird.
loadstatementoder selectstatement
Der LOAD- oder SELECT-Befehl für die geladene Tabelle.
Die folgenden Themen können Sie bei der Arbeit mit dieser Funktion unterstützen:
Der Ladezusatz Keep gleicht dem Zusatz Join, kombiniert aber die Quell- und Zieldatensätze nicht. Stattdessen kürzt er jeden Datensatz entsprechend dem gewählten Vorgangstyp (Inner, Outer, Left oder Right).
Beispiel 1 – Left Join: Erweitern einer Zieltabelle mit einem Referenzdatensatz
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz mit Änderungsdatensätzen, der in eine Tabelle namens Changes geladen wird. Sie enthält ein „Status ID“-Schlüsselfeld.
Ein zweiter Datensatz, der Änderungsstatus darstellt, wird geladen und mit den ursprünglichen Änderungsdatensätzen kombiniert, indem sie mit dem Ladezusatz „Left Join“ verknüpft werden.
Dieser Left Join sorgt dafür, dass die Änderungsdatensätze intakt bleiben, während Statusattribute hinzugefügt werden, wenn eine Übereinstimmung mit den eingehenden Statuseinträgen basierend auf einer gemeinsamen Status-ID gefunden wird.
Ladeskript
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');
Ergebnisse
Öffnen Sie die Datenmodellansicht und beachten Sie die Form des Datenmodells. Nur eine denormalisierte Tabelle ist vorhanden. Es handelt sich um eine Kombination aller ursprünglichen Änderungsdatensätze, wobei die übereinstimmenden Statusattribute jedem Änderungsdatensatz hinzugefügt werden.
Entstandenes internes Datenmodell
Änderungen
Änderungs-ID
Status-ID
Geplantes Startdatum
Geplantes Enddatum
Geschäftliche Auswirkung
Status
Unterstatus
Wenn Sie das Vorschaufenster in der Datenmodellansicht erweitern, sehen Sie einen Teil dieses vollständigen Ergebnissatzes in Form einer Tabelle:
Vorschau der Änderungstabelle in der Datenmodellansicht
Änderungs-ID
Status-ID
Geplantes Startdatum
Geplantes Enddatum
Geschäftliche Auswirkung
Status
Unterstatus
10030
4
19/01/2022
23/02/2022
Keine
Geschlossen
Abgebrochen
10031
3
20/01/2022
25/03/2022
Niedrig
Geschlossen
Abgeschlossen
10015
3
04/01/2022
15/02/2022
Niedrig
Geschlossen
Abgeschlossen
10103
1
02/04/2022
29/05/2022
Mittel
Öffnen
Nicht gestartet
10116
1
15/04/2022
24/04/2022
Keine
Öffnen
Nicht gestartet
10134
1
03/05/2022
08/07/2022
Niedrig
Öffnen
Nicht gestartet
10264
1
10/09/2022
17/10/2022
Mittel
Öffnen
Nicht gestartet
10040
1
29/01/2022
22/04/2022
Keine
Öffnen
Nicht gestartet
10323
1
08/11/2022
26/11/2022
Hoch
Öffnen
Nicht gestartet
10187
2
25/06/2022
24/08/2022
Niedrig
Öffnen
Gestartet
10185
2
23/06/2022
08/09/2022
Keine
Öffnen
Gestartet
10220
2
28/07/2022
06/09/2022
Keine
Öffnen
Gestartet
10326
2
11/11/2022
05/12/2022
Keine
Öffnen
Gestartet
10138
2
07/05/2022
03/08/2022
Keine
Öffnen
Gestartet
10334
2
19/11/2022
06/02/2023
Niedrig
Öffnen
Gestartet
Da die fünfte Zeile in der Statustabelle (Status-ID: „5“, Status: „Geschlossen“, Unterstatus: „Veraltet“) keinem der Datensätze in der Änderungstabelle entspricht, werden die Informationen dieser Zeile nicht im obigen Ergebnissatz angezeigt.
Kehren Sie zum Dateneditor zurück. Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: Status.
Fügen Sie folgende Kennzahl hinzu:
=Count([Change ID])
Jetzt können Sie die Anzahl der Änderungen nach Status prüfen.
Ergebnistabelle
Status
=Count([Change ID])
Öffnen
12
Geschlossen
3
Beispiel 2 – Inner Join: Nur Kombinieren übereinstimmender Datensätze
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz mit Änderungsdatensätzen, der in eine Tabelle namens Changes geladen wird.
Ein zweiter Datensatz, der Änderungsdatensätze aus dem Quellsystem JIRA darstellt, wird geladen und mit den ursprünglichen Datensätzen kombiniert, indem sie mit dem Ladezusatz Inner Join verknüpft werden.
Dieser Inner Join sorgt dafür, dass nur die fünf in beiden Datensätzen gefundenen Änderungsdatensätze beibehalten werden.
Ladeskript
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');
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
Source System
Change ID
Business Impact
Jetzt können Sie die fünf Ergebnisdatensätze prüfen. Die Ergebnistabelle eines Inner Join enthält nur Einträge mit übereinstimmenden Informationen in beiden Datensätzen.
Ergebnistabelle
Quellsystem
Änderungs-ID
Geschäftliche Auswirkung
JIRA
10030
Keine
JIRA
10134
Niedrig
JIRA
10220
Keine
JIRA
10323
Hoch
JIRA
10334
Niedrig
Beispiel 3 – Outer Join: Kombinieren von überlappenden Datensätzen
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz mit Änderungsdatensätzen, der in eine Tabelle namens Changes geladen wird.
Ein zweiter Datensatz, der Änderungsdatensätze aus dem Quellsystem JIRA darstellt, wird geladen und mit den ursprünglichen Datensätzen kombiniert, indem sie mit dem Ladezusatz Outer Join verknüpft werden.
Dies sorgt dafür, dass alle überlappenden Änderungsdatensätze aus beiden Datensätzen beibehalten werden.
Ladeskript
// 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');
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
Source System
Change ID
Business Impact
Jetzt können Sie die zehn Ergebnisdatensätze prüfen.
Ergebnistabelle
Quellsystem
Änderungs-ID
Geschäftliche Auswirkung
JIRA
10030
Keine
JIRA
10134
Niedrig
JIRA
10220
Keine
JIRA
10323
-
JIRA
10334
Niedrig
JIRA
10597
-
-
10015
Niedrig
-
10031
Niedrig
-
10040
Keine
-
10138
Keine
Beispiel 4 – Right Join: Kürzen einer Zieltabelle durch einen sekundären Master-Datensatz
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz mit Änderungsdatensätzen, der in eine Tabelle namens Changes geladen wird.
Ein zweiter Datensatz stellt die Änderungsdatensätze dar, die aus dem Quellsystem Teamwork stammen. Diese werden geladen und mit den Originaldatensätzen kombiniert, indem sie mit einem Right Join-Ladepräfix verknüpft werden.
Dies sorgt dafür, dass nur Teamwork-Änderungsdatensätze beibehalten werden und gleichzeitig keine Teamwork-Datensätze verloren gehen, wenn die Zieltabelle keine übereinstimmende Change ID enthält.
Ladeskript
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');
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
Source System
Change ID
Business Impact
Jetzt können Sie die fünf Ergebnisdatensätze prüfen.
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!