Jointure anti gauche
L’un des types de jointures disponibles dans la boîte de dialogue Fusionner de Power Query est une jointure anti gauche qui n’amène que des lignes de la table de gauche qui n’ont pas de lignes correspondantes dans la table de droite. Plus d’informations : vue d’ensemble des opérations de fusion
Le diagramme montre la table de gauche avec les colonnes Date, CountryID et Units. La colonne CountryID mise en évidence contient les valeurs 1 dans les lignes 1 et 2, 3 dans la ligne 3 et 2 dans la ligne 4. La table de droite contient les colonnes ID et Pays. La colonne ID soulignée contient les valeurs 3 dans la ligne 1 (indiquant Panama) et 4 dans la ligne 2 (indiquant l’Espagne). Un tableau sous les deux premières tables contient les colonnes Date, CountryID, Units et Country. La table comporte trois lignes, avec deux lignes contenant les données de CountryID 1 et une ligne pour CountryID 2. Étant donné qu'aucun des CountryIDs restants ne correspond à l'un des pays/régions de la table de droite, les lignes de la colonne Country de la table fusionnée contiennent toutes des valeurs Null.
Cet article utilise un échantillon de données pour montrer comment effectuer une opération de fusion avec la jointure anti gauche. Les exemples de tables sources de cet exemple sont les suivants :
Sales: cette table inclut les champs Date, CountryIDet Units. CountryID est une valeur de nombre entier qui représente l’identificateur unique de la table Pays.
Pays: ce tableau est une table de référence avec les champs ID et Pays. Le champ ID représente l’identificateur unique de chaque enregistrement.
Dans cet exemple, vous fusionnez les deux tables, avec la table Sales
Champ de la table Sales | Champ de la table Countries |
---|---|
CountryID | ID |
L’objectif est de créer une table comme celle-ci, où seules les lignes de la table de gauche qui ne correspondent à aucune de la table de droite sont conservées.
Capture d’écran de la table finale jointure anti gauche avec les en-têtes de colonne Date, CountryID, Units, et Country, ainsi que trois lignes de données dont les valeurs de la colonne Country sont toutes nulles.
Pour effectuer une jointure anti gauche :
- Sélectionnez la requête Sales, puis Fusionner les requêtes.
- Dans la boîte de dialogue Fusionner, sous Table de droite à fusionner, sélectionnez Countries.
- Dans la table Sales, sélectionnez la colonne CountryID.
- Dans la table Countries, sélectionnez la colonne ID.
- Dans la section Type de jointure, sélectionnez Anti gauche.
- Sélectionnez OK.
Conseil
Examinez le message en bas de la boîte de dialogue qui lit « La sélection sélectionne 3 de 4 lignes dans le premier tableau ». Ce message est essentiel pour comprendre le résultat obtenu à partir de cette opération.
Dans la table Sales, vous disposez de deux instances d’une CountryID de 1 et d’une instance d’un CountryID de 2, mais aucune d’entre elles n’est trouvée dans la table Pays. Par conséquent, le résultat de la correspondance a permis de trouver trois des quatre lignes dans la table de gauche (la première).
Dans la table Countries, vous disposez de leCountry Panama avec un ID de 3, de sorte que l’enregistrement n’est pas placé dans la table Sales, car les nombres correspondent. De plus, vous disposez d’un Country Espagne avec un ID de 4, mais il n’existe aucun enregistrement pour CountryID 4 dans la table Sales. Par conséquent, aucune des deux lignes de la table de droite (seconde) n’est introduite dans la table Sales.
À partir de la colonne Pays nouvellement créée, développez le champ Pays. Ne cochez pas la case à cocherUtiliser le nom de la colonne d’origine comme préfixe.
Après avoir effectué cette opération, vous avez créé une table qui ressemble à l’image suivante. Le champ pays nouvellement élargi n’a pas de valeurs, car la jointure anti-gauche n’apporte aucune valeur de la table de droite ; elle conserve uniquement les lignes de la table de gauche.
Capture d’écran du tableau final avec les en-têtes de colonne Date, CountryID, Units et Country, et trois lignes de données. Les valeurs de la colonne Country sont toutes null.