Beispiel Tabellen:

Tab1 (Mitarbeiter):

MAID Name Vorname  GID
1 Müller Anton  1
2 Schmidt Petra  2
3 Richter Paul  NULL

Tab2 (Gruppen):

GID Gruppe
1 Team A
2 Team B
3 Team C
 

Situation:

Auf Seiten der Mitarbeiter ist Zeile 3 keinem Team zugeordnet, auf Seiten der Gruppen ist Team C keinem Mitarbeiter zugeordnet.

 

SQL Join

In SQL selber gibt es mehr Möglichkeiten zu Tabellen zusammenzuführen als in Qlik. In Qlik stehen ihnen folgende Möglichkeiten bereit, wobei die erste Variante ehr als Fehler zu betrachten ist.

 

Cross Join

Wenn Sie zwei Tabellen zusammenführen, welche über keinen gemeinsamen Schlüssel verfügen spricht man von einem sogenannten Cross Join, Das Ergebnis dieses bezeichnet man auch als kartesisches Produkt. In der Regel ist dieses Ergebnis nicht richtig, da jede Zeile mit jeder Zeile multipliziert wird. 

Dieses passiert in Qlik wenn Sie zwei Tabellen zusammenführen welche keine Verbindung über Gleichnamigkeit haben.

Das Ergebnis des Cross Joins würde für unser Beispiel wie folgt aussehen:

MAID Name Vorname  GID Gruppe
1 Müller Anton  1 Team A
2 Schmidt Petra  NULL Team A
3 Richter Paul  NULL Team A
1 Müller Anton  NULL Team B
2 Schmidt Petra  2 Team B
3 Richter Paul  NULL Team B
1 Müller Anton  NULL Team C
2 Schmidt Petra  NULL Team C
3 Richter Paul  NULL Team C
usw. usw. usw. usw. usw.
Mitarbeiter:
SQL Select 
  MAID
  , Name
  , Vorname
  , GID
From Mitarbeiter;

Gruppen:
join (Mitarbeiter)
SQL Select 
  GID AS _GID
  , Gruppe
From Gruppen;

 

Outer Join

Beim Outer Join bleiben alle NULL Werte beider Tabellen erhalten

MAID Name Vorname  GID Gruppe
1 Müller Anton  1 Team A
2 Schmidt Petra  2 Team B
3 Richter Paul  NULL NULL
NULL NULL NULL 3 Team C
Mitarbeiter:
SQL Select 
  MAID
  , Name
  , Vorname
  , GID
From Mitarbeiter;

Gruppen:
join (Mitarbeiter)
SQL Select 
  GID 
  , Gruppe
From Gruppen;

 

Inner Join

Der Inner Join liefert das Gegenteil des Outer Join – alle NULL Werte werden eliminiert.

MAID Name Vorname  GID Gruppe
1 Müller Anton  1 Team A
2 Schmidt Petra  2 Team B
Mitarbeiter:
SQL Select 
  MAID
  , Name
  , Vorname
  , GID
From Mitarbeiter;

Gruppen:
inner join (Mitarbeiter)
SQL Select 
  GID AS _GID
  , Gruppe
From Gruppen;

 

Left Join

NULL Werte der linken Seite bleiben erhalten.

MAID Name Vorname  GID Gruppe
1 Müller Anton  1 Team A
2 Schmidt Petra  2 Team B
3 Richter Paul  NULL NULL
Mitarbeiter:
SQL Select 
  MAID
  , Name
  , Vorname
  , GID
From Mitarbeiter;

Gruppen:
left join (Mitarbeiter)
SQL Select 
  GID AS _GID
  , Gruppe
From Gruppen;

 

Right Join

NULL Werte der rechten Seite bleiben erhalten.

MAID Name Vorname  GID Gruppe
1 Müller Anton  1 Team A
2 Schmidt Petra  2 Team B
NULL NULL NULL 3 Team C
Mitarbeiter:
SQL Select 
  MAID
  , Name
  , Vorname
  , GID
From Mitarbeiter;

Gruppen:
right join (Mitarbeiter)
SQL Select 
  GID AS _GID
  , Gruppe
From Gruppen;

 

Mehr Infos zum SQL Join finden Sie hier: https://de.wikipedia.org/wiki/Join_(SQL)

 

Warum man in Qlik nicht unbedingt joinen muss

Da Qlik assoziatives Datenmodell basiert ist es nicht unbedingt erforderlich Tabellen zu joinen. Joinen kann je nach Tabellenzeilen und Spalten auch sehr zeitintensiv werden. Bei einfachen Datenmodellen empfiehlt sich allerdings eine Vereinfachung auf das sogenannte DMF oder auch Star Schema. Siehe auch wie Qlik Daten lädt