Commande JOIN

Information de concept

Joindre des tables

Combine des champs de deux tables Analytics dans une nouvelle table Analytics unique.

Remarque

Pour utiliser les correspondances approximatives afin de joindre des tables, consultez la rubrique Commande FUZZYJOIN.

Syntaxe

JOIN {PKEY champs_clés_principaux|PKEY ALL <EXCLUDE field_name <...n>>} {FIELDS champs_principaux|FIELDS ALL <EXCLUDE nom_champ <...n>>} {SKEY champs_clés_secondaires|SKEY ALL <EXCLUDE nom_champ <...n>>} <WITH champs_secondaires|WITH ALL <EXCLUDE nom_champ <...n>>> {aucun_mot_clé|MANY|UNMATCHED|PRIMARY|SECONDARY|PRIMARY SECONDARY} <IF test> TO nom_table <LOCAL> <OPEN> <WHILE test> <FIRST plage|NEXT plage> <APPEND> <PRESORT> <SECSORT> <ISOLOCALE code_paramètres_régionaux>

Paramètres

Nom Description
PKEY champs_clés_principaux | PKEY ALL

Le ou les champs clés, ou expression clé, dans la table principale.

  • PKEY champs_clés_principaux utilise le(s) champ(s) spécifié(s)

    Les champs sont utilisés dans l'ordre dans lequel vous les faites figurer dans la liste.

  • PKEY ALL utilise tous les champs de la table

    Les champs sont utilisés dans l'ordre dans lequel ils apparaissent dans le format de table.

EXCLUDE nom_champ

optionnel

Valide uniquement pour une jointure à l'aide de PKEY ALL.

Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser PKEY ALL, en excluant les champs spécifiés.

EXCLUDE doit suivre immédiatement PKEY ALL. Par exemple :

PKEY ALL EXCLUDE champ_1 champ_2
FIELDS champs_principaux | FIELDS ALL

Les champs ou expressions de la table principale à inclure dans la table de sortie jointe.

  • FIELDS champs_principaux inclut le(s) champ(s) spécifié(s)

    Les champs sont inclus dans l'ordre de la liste.

  • FIELDS ALL inclut tous les champs de la table

    Les champs sont inclus dans leur ordre d'apparition dans le format de table.

Remarque

Vous devez indiquer de manière explicite le(s) champ(s) clé(s) principal(aux) si vous voulez les intégrer dans la table jointe. Le fait de spécifier FIELDS ALL les inclut également.

EXCLUDE champs_principaux

optionnel

Valide uniquement pour une jointure à l'aide de FIELDS ALL.

Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser le mot-clé ALL, en excluant les champs spécifiés.

EXCLUDE doit suivre immédiatement FIELDS ALL, ou la dernière occurrence du mot-clé ALL si vous incluez des champs d'une ou de plusieurs tables associées. Par exemple :

FIELDS ALL EXCLUDE champ_1 champ_2
FIELDS ALL nom_table_associée.ALL EXCLUDE champ_1 champ_2
SKEY champs_clés_secondaires | SKEY ALL

Le ou les champs clés, ou l'expression clé, dans la table secondaire.

  • SKEY champs_clés_secondaires utilise le(s) champ(s) spécifié(s)

    Les champs sont utilisés dans l'ordre dans lequel vous les faites figurer dans la liste.

  • SKEY ALL utilise tous les champs de la table

    Les champs sont utilisés dans l'ordre dans lequel ils apparaissent dans le format de table.

EXCLUDE nom_champ

optionnel

Valide uniquement pour une jointure à l'aide de SKEY ALL.

Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser SKEY ALL, en excluant les champs spécifiés.

EXCLUDE doit suivre immédiatement SKEY ALL. Par exemple :

SKEY ALL EXCLUDE champ_1 champ_2

WITH champs_secondaires | WITH ALL

optionnel

Les champs ou expressions de la table secondaire à inclure dans la table de sortie jointe.

  • WITH champs_secondaires inclut le(s) champ(s) spécifié(s)

    Les champs sont inclus dans l'ordre dans lequel vous les faites figurer dans la liste.

  • WITH  ALL inclut tous les champs de la table

    Les champs sont inclus dans l'ordre dans lequel ils apparaissent dans la table.

Remarque

Vous devez indiquer de manière explicite le(s) champ(s) clé(s) secondaire(s) si vous voulez les intégrer dans la table jointe. Le fait de spécifier WITH ALL les inclut également.

Vous ne pouvez pas indiquer WITH si vous utilisez le type de jointure UNMATCHED.

EXCLUDE nom_champ

optionnel

Valide uniquement pour une jointure à l'aide de WITH ALL.

Le ou les champs à exclure de la commande. EXCLUDE vous permet de personnaliser WITH ALL, en excluant les champs spécifiés.

EXCLUDE doit suivre immédiatement WITH ALL. Par exemple :

WITH ALL EXCLUDE champ_1 champ_2
aucun_mot_clé | MANY | UNMATCHED | PRIMARY | SECONDARY | PRIMARY SECONDARY

Type de jointure à effectuer.

aucun_mot_clé (omettez tous les mots-clés du type de jointure)

La table de sortie jointe contient : Option correspondante dans la boîte de dialogue Joindre
  • tous les enregistrements primaires correspondants et le premier enregistrement secondaire correspondant

Primaires et secondaires correspondants

(1re correspondance secondaire)

MANY

La table de sortie jointe contient : Option correspondante dans la boîte de dialogue Joindre
  • tous les enregistrements primaires et secondaires correspondants
  • un enregistrement pour chaque correspondance entre la table principale et les tables secondaires

Primaires et secondaires correspondants

(toutes les correspondances secondaires)

UNMATCHED

La table de sortie jointe contient : Option correspondante dans la boîte de dialogue Joindre
  • enregistrements primaires non correspondants

Primaires non correspondants

PRIMARY

La table de sortie jointe contient : Option correspondante dans la boîte de dialogue Joindre
  • tous les enregistrements primaires (correspondants et non correspondants) et le premier enregistrement secondaire correspondant

Tous les primaires et tous les secondaires correspondants

Remarque

Le mot-clé BOTH revient à spécifier PRIMARY.

SECONDARY

La table de sortie jointe contient : Option correspondante dans la boîte de dialogue Joindre
  • tous les enregistrements secondaires (correspondants et non correspondants) et tous les enregistrements primaires correspondants

    Seule la première instance des correspondances secondaires en doublon est jointe à un enregistrement primaire.

Tous les secondaires et tous les primaires correspondants

PRIMARY SECONDARY

La table de sortie jointe contient : Option correspondante dans la boîte de dialogue Joindre
  • tous les enregistrements primaires et secondaires, correspondants et non correspondants

    Seule la première instance des correspondances secondaires en doublon est jointe à un enregistrement primaire.

Tous les primaires et secondaires

IF test

optionnel

Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée uniquement sur les enregistrements remplissant la condition.

Remarque

La condition IF est évaluée uniquement par rapport aux enregistrements restant dans une table après application des options relevant du champ d'application (WHILE, FIRST, NEXT).

Remarque

Pour la plupart des types de jointure, la condition IF ne s'applique que dans la table principale.

La seule exception est une jointure ACL de type plusieurs-à-plusieurs, dans laquelle la condition IF peut aussi faire référence à la table secondaire. Pour faire référence à la table secondaire, vous devez indiquer un nom de champ complet (nom_table.nom_champ). Par exemple :

IF Etat.Client="NY"
TO nom_table

Emplacement vers lequel envoyer les résultats de la commande :

  • nom_table enregistre les résultats dans une table Analytics

    Indiquez nom_table sous forme de chaîne entre guillemets avec une extension de fichier .FIL. Par exemple : TO "Sortie.FIL"

    Par défaut, le fichier de données de table (.FIL) est enregistré dans le dossier contenant le projet Analytics.

    Utilisez un chemin de fichier absolu ou relatif pour enregistrer le fichier de données dans un autre dossier existant :

    • TO "C:\Sortie.FIL"
    • TO "Résultats\Sortie.FIL"

    Remarque

    La longueur des noms des tables est limitée à 64 caractères alphanumériques, sans l'extension .FIL. Le nom peut inclure le caractère de soulignement ( _ ), mais aucun autre caractère spécial ni espace. Le nom ne peut pas commencer par un chiffre.

LOCAL

optionnel

Enregistre le fichier de sortie au même emplacement que le projet Analytics.

Remarque

Applicable uniquement lorsque vous exécutez la commande sur une table de serveur avec un fichier de sortie qui est une table Analytics.

Le paramètre LOCAL doit suivre immédiatement le paramètre TO.

OPEN

optionnel

Ouvre la table créée par la commande après l'exécution de la commande. Valide uniquement lorsque la commande crée une table de sortie.

WHILE test

optionnel

Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée jusqu'à ce que la condition soit évaluée comme fausse ou lorsque la fin de la table est atteinte.

Remarque

Si vous utilisez WHILE conjointement avec FIRST ou NEXT, le traitement des enregistrements s'arrête dès qu'une limite est atteinte.

FIRST plage | NEXT plage

optionnel

Le nombre d'enregistrements à traiter :

  • FIRST pour commencer le traitement à partir du premier enregistrement jusqu'à ce que le nombre d'enregistrements spécifié soit atteint
  • NEXT pour commencer le traitement à partir de l'enregistrement actuellement sélectionné jusqu'à ce que le nombre d'enregistrements spécifié soit atteint

Utilisez plage pour indiquer le nombre d'enregistrements à traiter.

Si vous ignorez FIRST et NEXT, tous les enregistrements sont traités par défaut.

APPEND

optionnel

Ajoute la sortie de commande à la fin d'un fichier existant au lieu de remplacer ce fichier.

Remarque

Vous devez vous assurer que la structure de la sortie de la commande et du fichier existant est identique :

  • les mêmes champs
  • le même ordre des champs
  • les champs correspondants ont la même longueur
  • les champs correspondants ont le même type de données

Analytics ajoute la sortie à un fichier existant sans tenir compte de sa structure, ce qui peut désordonner les données si la structure de la sortie et du fichier existant ne correspond pas.

PRESORT

optionnel

Trie la table principale par le champ clé primaire avant d'exécuter la commande.

Remarque

Vous ne pouvez pas utiliser PRESORT dans la commande GROUP.

Indexation au lieu du tri

La table primaire peut être indexée plutôt que triée. Avec les grandes tables, indexer plutôt que trier peut permettre de diminuer la durée requise pour joindre les tables.

Si vous joignez deux tables à l'aide d'un champ clé commun indexé, ignorez PRESORT et SECSORT.

SECSORT

optionnel

Trie la table secondaire par le champ clé secondaire avant d'exécuter la commande.

Remarque

Vous ne pouvez pas utiliser SECSORT dans la commande GROUP.

Indexation au lieu du tri

La table secondaire peut être indexée plutôt que triée. Avec les grandes tables, indexer plutôt que trier peut permettre de diminuer la durée requise pour joindre les tables.

Si vous joignez deux tables à l'aide d'un champ clé commun indexé, ignorez PRESORT et SECSORT.

ISOLOCALE code_paramètres_régionaux

optionnel

Remarque

Applicable dans l'édition Unicode d'Analytics uniquement.

Paramètre système local au format langue_pays. Par exemple, pour utiliser le français canadien, saisissez fr_ca.

Utilisez les codes suivants :

  • langue code linguistique de la norme ISO 639
  • pays code pays de la norme ISO 3166

    Si vous n'indiquez pas de code pays, c'est le pays par défaut pour la langue qui est utilisé.

Si vous n'utilisez pas ISOLOCALE, ce sont les paramètres système régionaux par défaut qui sont utilisés.

Exemples

Joindre deux tables pour détecter les employés susceptibles d'être aussi des fournisseurs

Les exemples ci-dessous joignent les tables Empmast et Fournisseur en utilisant l'adresse comme champ clé commun (champs Adresse et Rue_Fournisseur).

La commande JOIN crée une nouvelle table avec les enregistrements primaires et secondaires correspondants, ce qui génère la liste des employés et des fournisseurs ayant la même adresse.

OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
JOIN PKEY Adresse FIELDS Empno Premier Dernier Adresse SKEY Rue_Fournisseur WITH No_Fournisseur Nom_Fournisseur Rue_Fournisseur "Correspondance_employé_fournisseur" OPEN PRESORT SECSORT

Cette version de la commande JOIN inclut tous les champs des tables principale et secondaires dans la table de sortie jointe.

OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
JOIN PKEY Adresse FIELDS ALL SKEY Rue_Fournisseur WITH ALL TO "Correspondance_employé_fournisseur" OPEN PRESORT SECSORT

Cette version de la commande JOIN utilise une condition IF pour limiter la table de sortie jointe aux employées et fournisseurs avec des adresses en Californie.

Notez que le type de jointure est MANY, qui est requise si vous souhaitez qu'une condition IF fasse référence à une table secondaire. Le nom du champ de la table secondaire doit être complet ( Fournisseur.Etat_Fournisseur ).

OPEN Empmast PRIMARY
OPEN Fournisseur SECONDARY
JOIN PKEY Adresse FIELDS ALL SKEY Rue_Fournisseur WITH ALL IF Etat="CA" AND Fournisseur.Etat_Fournisseur="CA" TO "Correspondance_employé_fournisseur" OPEN PRESORT MANY SECSORT

Joindre deux tables pour découvrir des enregistrements de créances clients sans client qui correspond

Dans l'exemple ci-dessous, les tables Ar et Client sont jointes en utilisant le numéro de client (NumClient) comme champ clé commun.

La commande JOIN utilise le type de jointure UNMATCHED pour créer une table d'enregistrements primaires non correspondants, qui renvoie une liste d'enregistrements Ar qui ne sont associés à aucun enregistrement Client.

OPEN Ar PRIMARY
OPEN Client SECONDARY
JOIN PKEY NumClient FIELDS NumClient Echéance Montant SKEY NumClient UNMATCHED TO "ClientIntrouvable.fil" OPEN PRESORT SECSORT

Remarques

Pour plus d'informations sur le fonctionnement de cette commande, consultez Jonction de tables.