Altova MapForce 2027 Professional Edition

Lorsque vous connectez des composants de base de données éligibles (tels que des tables ou des vues) directement à un composant join, un bouton Mode SQL mf_ic_join_sql_enabled apparaît dans le coin supérieur droit du composant join. Lorsque le mode SQL est activé, l’opération de jointure est effectuée par la base de données à partir de laquelle le mappage lit les données. En d’autres termes, MapForce envoie en interne à la base de données une requête utilisant la syntaxe SQL appropriée pour sélectionner et combiner les données de toutes les tables participant à la jointure. Il est important de noter que vous n’avez pas besoin d’écrire de code SQL ; la requête requise est générée en fonction de la manière dont vous avez conçu visuellement le composant join dans le mappage, comme vous le verrez dans les exemples suivants.

 

Pour que le mode SQL soit disponible, les conditions suivantes doivent être remplies :

 

1.Les deux objets (tables ou vues) devant être jointes doivent provenir de la même base de données.

2.Les deux objets devant être joints doivent provenir du même composant MapForce. (Notez que vous pouvez rapidement ajouter ou supprimer des objets de base de données dans un composant comme suit : cliquez avec le bouton droit sur le composant de base de données, puis sélectionnez Ajouter/Supprimer/Éditer Objets de base de données dans le menu contextuel.)

3.La ou les conditions de jointure doivent être définies uniquement à partir des propriétés du composant (en cliquant avec le bouton droit sur l’en-tête du composant de jointure, puis en sélectionnant Propriétés) et non dans le mappage (voir également Ajouter des conditions join).

 

Note : Lorsque des tables de base de données sont jointes dans le mode SQL, MapForce créera la condition Join (ou les conditions) automatiquement, sur la base des relations de clé étrangère détectée entre les tables. Pour que des conditions Join automatiques se produisent, les tables de base de données doivent se trouver dans une relation enfant-parent dans le composant MapForce (c'est à dire, qu'une table doit être "parent" ou "child" d'un autre dans le composant), voir Exemple: Joindre des tables dans le mode SQL.

 

4.Aucune des tables de base de données ne doit encore figurer dans le contexte cible actuel. Lorsque le résultat de la jointure est utilisé dans un composant cible, aucune des tables jointes ne doit être connectée, directement ou indirectement, à un nœud parent cible. Pour plus d’informations sur le fonctionnement d’un mappage, voir Règles et stratégies de mappage.

 

Vous pouvez afficher ou contrôler le mode SQL à l’aide du bouton SQL ( mf_ic_join_sql ) situé dans le coin supérieur droit du composant de jointure, comme suit :

 

mf_ic_join_sql

Le mode SQL est désactivé (la jointure sera exécutée par MapForce (ou, le cas échéant, par MapForce Server)).

mf_ic_join_sql_enabled

Le mode SQL est activé (la jointure sera exécutée par la base de données).

 

Si le bouton mf_ic_join_sql est absent, cela signifie que le mode SQL n’a pas de sens ou n’est pas pris en charge pour les données faisant l’objet de la jointure.

 

Dans certains cas, le mode SQL doit être explicitement désactivé ( mf_ic_join_sql ), par exemple :

 

•Lorsque votre mappage nécessite des conditions join en dehors des propriétés du composant join (c’est-à-dire des conditions définies sur le mappage et liées à l’élément condition du composant join).

•Lorsque vous souhaitez joindre des tables provenant de bases de données différentes. Utilisez une jointure standard (non SQL) si vous devez joindre des tables provenant de bases de données différentes.

 

Modifier le mode de jointure

Lorsque le composant de jointure est en mode SQL mf_ic_join_sql_enabled, vous pouvez joindre des tables ou des vues de base de données de l’une des manières suivantes :

 

•INNER JOIN - Seuls les enregistrements qui satisfont à la condition dans les deux ensembles d’entrée sont renvoyés par le composant join.

•LEFT OUTER JOIN - Le composant join inclut tous les enregistrements de la table « la plus à gauche » (dans MapForce, il s’agit de la table située tout en haut d’un composant join), ainsi que les enregistrements de la table jointe par la suite qui satisfont à la condition join.

 

Pour afficher le mode de jointure d’une table ou d’une vue dans le composant join, observez l’icône affichée devant la table ou la vue jointe. L’une des icônes suivantes peut s’afficher pour toute table ou vue jointe, à l’exception de la première :

 

•Join intérieur mff_ic_inner_join

•Join gauche mff_ic_left_join

 

Pour afficher une info-bulle contenant des détails sur la jointure, placez le curseur sur l’icône :

mff_view_join_mode

Pour modifier le mode de jointure, procédez de l’une des manières suivantes :

 

•Cliquez sur l’icône Join intérieur mff_ic_inner_join ou Join gauche mff_ic_left_join située devant chaque table ou vue jointe, puis sélectionnez Join intérieur ou Join gauche extérieur dans le menu contextuel.

•Cliquez avec le bouton droit sur la deuxième (ou troisième, quatrième, etc.) table ou vue jointe dans le composant join, puis sélectionnez Type join | Join intérieur ou Type join | Join gauche extérieur dans le menu contextuel.

mff_join_mode

Notez les points suivants :

 

•Si vous avez modifié le mode de jointure en JOIN GAUCHE EXTÉRIEUR, la table ou la vue du haut représente alors le côté « gauche » de la jointure.

•La modification du mode de jointure affecte les données renvoyées par le composant de jointure de la même manière que les instructions JOIN INTÉRIEUR ou JOIN GAUCHE affectent le résultat d’une requête SQL dans une base de données.

 

Noms d’alias

Il arrive souvent que des tables ou des vues de base de données jointes contiennent des noms de champs identiques dans les deux structures jointes. Lorsque le mode SQL est activé, ces éléments apparaissent dans le composant précédés du mot-clé « AS ». Par exemple, si deux tables jointes contiennent un champ « id », ce champ apparaît sous la forme « id » dans la première table jointe et sous la forme « id AS id2 » dans la seconde. Les tables jointes peuvent également générer des alias, par exemple si une même table est jointe à elle-même.

 

Les noms d’alias des champs ou des tables sont importants si vous devez y faire référence ultérieurement dans un mappage. Imaginons, par exemple, que vous souhaitiez filtrer ou trier le résultat de la jointure. Pour ce faire, la sortie du composant join peut être connectée à un composant SQL WHERE/ORDER, dans lequel vous saisirez les clauses SQL WHERE et ORDER BY.

 

Pour faire référence à un champ à partir de la clause WHERE, écrivez le nom de la table, suivi d’un point (.), puis du nom du champ. Pour faire référence à un alias de table, utilisez le nom de l’alias tel qu’il apparaît dans le composant join. Dans la clause ORDER BY, vous pouvez soit utiliser la même technique (table.champ), soit écrire simplement le nom du champ d’alias (le nom qui apparaît après « AS »).

 

Pour un exemple de mappage utilisant les clauses SQL WHERE/ORDER, voir Exemple : Joindre des tables en mode SQL.

 

Note : Les composants SQL WHERE/ORDER ne sont pas autorisés entre une table de base de données et le composant join ; ils ne peuvent être ajoutés qu’après (et non avant) un composant join. Pour plus d’informations sur les composants SQL WHERE/ORDER, voir Filtrer et trier des données de base de données (SQL WHERE/ORDER).

© 2020-2026 Altova GmbH