Le préfixe join permet de joindre la table chargée à une table nommée existante ou à la dernière table de données créée.
La jointure des données a pour effet d'ajouter au tableau cible un ensemble supplémentaire de champs ou d'attributs, à savoir, ceux qui ne sont pas déjà présents dans le tableau cible. Tous les noms de champ communs entre l'ensemble de données source et le tableau cible sont utilisés pour déterminer comment associer les nouveaux enregistrements entrants. C'est ce qu'on appelle communément une « jointure naturelle ». Une opération de jointure Qlik peut réduire ou augmenter le nombre d'enregistrements de la table cible obtenue par rapport à la table de départ, suivant le caractère unique de l'association de jointure et le type de jointure utilisé.
Il existe quatre types de jointures :
Left join
Les jointures Left join (jointures à gauche) constituent le type de jointure le plus courant. Par exemple, si vous avez un ensemble de données de transaction et si vous souhaitez le combiner avec un ensemble de données de référence, vous utiliserez généralement une jointure Left Join. Vous devez d'abord charger la table de transactions, puis charger l'ensemble de données de référence tout en le joignant via un préfixe Left Join à la table de transactions déjà chargée. Une jointure Left Join conserverait toutes les transactions telles quelles et ajouterait les champs de données de référence supplémentaires lorsqu'une correspondance est trouvée.
Inner join
Lorsque vous avez deux ensembles de données pour lesquels vous ne vous souciez que des résultats où il existe une association correspondante, envisagez d'utiliser une jointure Inner Join. Cela éliminera tous les enregistrements des données source chargées et de la table cible si aucune correspondance n'est trouvée. Par conséquent, cela peut aboutir à une table cible contenant moins d'enregistrements qu'avant l'opération de jointure.
Outer join
Lorsque vous devez conserver à la fois les enregistrements cible et tous les enregistrements entrants, utilisez une jointure Outer Join. Lorsqu'aucune correspondance n'est trouvée, chaque ensemble d'enregistrements est conservé, tandis que les champs du côté opposé de la jointure resteront vides (null).
Si le mot-clé de type est omis, le type de jointure par défaut est une jointure externe (Outer join).
Right join
Ce type de jointure conserve tous les enregistrements sur le point d'être chargés, tout en réduisant les enregistrements de la table ciblée par la jointure aux seuls enregistrements pour lesquels il existe une correspondance d'association dans les enregistrements entrants. Il s'agit d'une jointure de type niche parfois utilisée pour réduire une table d'enregistrements déjà préchargée à un sous-ensemble requis.
Note InformationsS'il n'existe pas de noms de champ en commun entre la source et la cible d'une opération de jointure, la jointure se traduira par un produit cartésien de toutes les lignes – c'est ce qu'on appelle une « jointure croisée » (cross join).
[inner | outer | left | right ]Join[ (tablename )
]( loadstatement | selectstatement )
Arguments
Argument
Description
tablename
Table nommée à comparer à la table chargée.
loadstatementou selectstatement
Instruction LOAD ou SELECT de la table chargée.
Ces rubriques peuvent vous aider à utiliser cette fonction :
Cette rubrique fournit des explications supplémentaires sur les concepts de « regroupement » (join) et de « conservation » (keep) des ensembles de données.
Le préfixe de chargement Keep est similaire au préfixe Join, mais il ne combine pas les ensembles de données source et cible. Au lieu de cela, il rogne chaque ensemble de données en fonction du type d'opération adopté (inner, outer, left ou right).
Exemple 1 - Left join : Enrichissement d'une table cible à l'aide d'un ensemble de données de référence
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données représentant des enregistrements de modification, chargé dans une table nommée Changes. Il inclut un champ clé Status ID.
Deuxième ensemble de données représentant les statuts de modification, chargé et combiné avec les enregistrements de modification d'origine en le joignant avec un préfixe de chargement Left Join.
Cette jointure Left Join garantit que les enregistrements de modification restent intacts lors de l'ajout d'attributs de statut lorsqu'une correspondance dans les enregistrements de statut entrants est trouvée en fonction d'un Status ID commun.
Script de chargement
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');
Résultats
Ouvrez le visionneur de modèle de données et notez la forme du modèle de données. Un seul tableau dénormalisé est présent. Il s'agit d'une combinaison de tous les enregistrements de modification d'origine, avec les attributs de statut correspondants joints à chaque enregistrement de modification.
Modèle de données interne obtenu
Changes
Change ID
Status ID
Scheduled Start Date
Scheduled End Date
Business Impact
Status
Sub Status
Si vous développez la fenêtre d'aperçu dans le visionneur de modèle de données, vous verrez une partie de cet ensemble de résultats complet organisé dans un tableau :
Aperçu du tableau Changes dans le visionneur de modèle de données
Change ID
Status ID
Scheduled Start Date
Scheduled End Date
Business Impact
Status
Sub Status
10030
4
19/01/2022
23/02/2022
None
Closed
Cancelled
10031
3
20/01/2022
25/03/2022
Low
Closed
Terminé
10015
3
04/01/2022
15/02/2022
Low
Closed
Terminé
10103
1
02/04/2022
29/05/2022
Medium
Open
Not Started
10116
1
15/04/2022
24/04/2022
None
Open
Not Started
10134
1
03/05/2022
08/07/2022
Low
Open
Not Started
10264
1
10/09/2022
17/10/2022
Medium
Open
Not Started
10040
1
29/01/2022
22/04/2022
None
Open
Not Started
10323
1
08/11/2022
26/11/2022
High
Open
Not Started
10187
2
25/06/2022
24/08/2022
Low
Open
Started
10185
2
23/06/2022
08/09/2022
None
Open
Started
10220
2
28/07/2022
06/09/2022
None
Open
Started
10326
2
11/11/2022
05/12/2022
None
Open
Started
10138
2
07/05/2022
03/08/2022
None
Open
Started
10334
2
19/11/2022
06/02/2023
Low
Open
Started
Étant donné que la cinquième ligne de la table Status (Status ID : '5', Status : 'Closed', Sub Status : 'Obsolete') ne correspond à aucun des enregistrements de la table Changes, les informations de cette ligne n'apparaissent pas dans l'ensemble de résultats ci-dessus.
Revenez à l'éditeur de chargement de données. Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension : Status.
Ajoutez cette mesure :
=Count([Change ID])
Vous pouvez maintenant inspecter le nombre de modifications (Changes) par statut (Status).
Tableau de résultats
Status
=Count([Change ID])
Open
12
Closed
3
Exemple 2 – Inner Join : Combinaison des enregistrements correspondants uniquement
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données représentant des enregistrements de modification, chargé dans une table nommée Changes.
Deuxième ensemble de données représentant les enregistrements de modification provenant du système source JIRA. Cet ensemble est chargé et combiné avec les enregistrements d'origine en le joignant avec un préfixe de chargement Inner Join.
Cette jointure Inner Join garantit que seuls les cinq enregistrements de modification trouvés dans les deux ensembles de données sont conservés.
Script de chargement
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');
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
Source System
Change ID
Business Impact
Vous pouvez maintenant inspecter les cinq enregistrements obtenus. Le tableau obtenu d'une fonction Inner Join inclura uniquement les enregistrements avec des informations correspondantes dans les deux ensembles de données.
Tableau de résultats
Source System
Change ID
Business Impact
JIRA
10030
None
JIRA
10134
Low
JIRA
10220
None
JIRA
10323
High
JIRA
10334
Low
Exemple 3 – Outer Join : Combinaison d'ensembles d'enregistrements en chevauchement
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données représentant des enregistrements de modification, chargé dans une table nommée Changes.
Deuxième ensemble de données représentant les enregistrements de modification provenant du système source JIRA. Cet ensemble est chargé et combiné avec les enregistrements d'origine en le joignant avec un préfixe de chargement Outer Join.
Cela garantit que tous les enregistrements de modification qui se chevauchent des deux ensembles de données sont conservés.
Script de chargement
// 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');
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
Source System
Change ID
Business Impact
Vous pouvez maintenant inspecter les dix enregistrements obtenus.
Tableau de résultats
Source System
Change ID
Business Impact
JIRA
10030
None
JIRA
10134
Low
JIRA
10220
None
JIRA
10323
-
JIRA
10334
Low
JIRA
10597
-
-
10015
Low
-
10031
Low
-
10040
None
-
10138
None
Exemple 4 – Right Join : Réduction d'une table cible à un ensemble de données principal secondaire
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données représentant des enregistrements de modification, chargé dans une table nommée Changes.
Deuxième ensemble de données représentant des enregistrements de modification provenant du système source Teamwork. Ces enregistrements sont chargés et combinés avec les enregistrements d'origine en les joignant avec un préfixe de chargement Right Join.
Cela garantit que seuls les enregistrements de modification Teamwork sont conservés, sans perdre aucun enregistrement Teamwork si la table cible n'a pas de valeur Change ID correspondante.
Script de chargement
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');
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
Source System
Change ID
Business Impact
Vous pouvez maintenant inspecter les cinq enregistrements obtenus.
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !