IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

full outer join sur talend


Sujet :

Développement de jobs

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 213
    Points : 73
    Points
    73
    Par défaut full outer join sur talend
    Bonjour est ce que quelqu'un sait comment faire une une jointure externe full avec talend svp?
    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 213
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Elise49 Voir le message
    Bonjour est ce que quelqu'un sait comment faire une une jointure externe full avec talend svp?
    Merci pour votre aide
    Qqun a une idee? c'est etonant qu'il n'y ait pas de composant pour effectuer de jointure externe complete... cela doit bien exister non? je suis debutante avec talend donc j'ai cherche mais pas trouver si vous savez aider moi svp!!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 213
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Elise49 Voir le message
    Qqun a une idee? c'est etonant qu'il n'y ait pas de composant pour effectuer de jointure externe complete... cela doit bien exister non? je suis debutante avec talend donc j'ai cherche mais pas trouver si vous savez aider moi svp!!
    Comment faites vous donc pour faire une jointure conplexe s'il ny a pas de composant? c'est possible de le faire avec tmap?

  4. #4
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Je crois en effet que le tMap ne gère pas le Full Outer Join il faut le simuler via 2 jointures externes ou la faire via le sgbd (valeur sûre ^^ ).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'ai le même problème pour faire un outer join.
    J'aimerais faire une jointure de 3tables :
    table1:
    ida idb valeur1
    1 1 200
    1 2 300
    2 1 40

    table2:
    ida idb valeur2
    1 1 20
    1 2 400

    table3:
    ida idb valeur3
    1 1 150
    2 1 90

    Résultat que je veux :
    ida idb valeur1 valeur2 valeur3
    1 1 200 20 150
    1 2 300 400 null
    2 1 40 null 90

    Comment puis-je faire avec talend?
    Si je joins les clés de la première table aux autres dans le tMap je n'ai pas les null j'ai que les résultats ou il y a la valeur1, la valeur2 et la valeur3 non null.
    Vous avez dit « il faut le simuler via 2 jointures externes » c'est-à-dire ?

    Merci

  6. #6
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    +1 pour Hebus_Beer,

    quand vous avez des jointures, quelles soient externes ou internes, il vaut mieux directement le faire avec le sgbd courant. Une belle requête bien propre vaut mieux que plein de lookup et de condition dans un tMap. Surtout pour les performances...

  7. #7
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Citation Envoyé par sabrina31 Voir le message
    Bonjour,

    J'ai le même problème pour faire un outer join.
    J'aimerais faire une jointure de 3tables :
    table1:
    ida idb valeur1
    1 1 200
    1 2 300
    2 1 40

    table2:
    ida idb valeur2
    1 1 20
    1 2 400

    table3:
    ida idb valeur3
    1 1 150
    2 1 90

    Résultat que je veux :
    ida idb valeur1 valeur2 valeur3
    1 1 200 20 150
    1 2 300 400 null
    2 1 40 null 90
    D'où la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select table1.ida, table1.idb, table1.valeur1, table2.valeur2, table3.valeur3
    from table1 left outer join table2
    on table1.ida = table2.ida
    and table1.idb = table2.idb
    left outer join table3
    on table1.ida = table3.ida
    and table1.idb = table3.idb;
    en espérant avoir pu te mettre sur la voix

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    J’ai fait la requête avec left outer join elle fonction bien :

    SELECT t.IdA, t.Periode, t.IdC,

    t.Valeur, tt.Valeur, ttt.Valeur, tttt.Valeur FROM transport.transport_aerien t

    LEFT OUTER JOIN transport.transport_aerien tt

    ON t.IdA = tt.IdA

    AND t.IdC = tt.IdC

    AND t.Periode = tt.Periode

    LEFT OUTER JOIN transport.transport_aerien ttt

    ON t.IdA = ttt.IdA

    AND t.IdC = ttt.IdC

    AND t.Periode = ttt.Periode

    LEFT OUTER JOIN transport.transport_aerien tttt

    ON t.IdA = tttt.IdA

    AND t.IdC = tttt.IdC

    AND t.Periode = tttt.Periode

    Where t.IdU = '2'

    And t.IdM = '3'

    And t.Periode like '%M%'

    And tt.IdU = '2'

    And tt.IdM = '7'

    And ttt.IdU = '1'

    And ttt.IdM = '2'

    And tttt.IdU = '3'

    And tttt.IdM = '6'

    ;



    Mais elle ne prend pas si l’une des valeurs : t.Valeur, tt.Valeur, ttt.Valeur, tttt.Valeur est null. Je pense que c’est peut être un FULL OUTER JOIN mais la j’au un problème ça ne marche pas est ce quelqu’un sait pourquoi?

  9. #9
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Bizare parce que le requête que je t'ai envoyé fonctionne bien : je l'ai testé et ça me sort les données que tu veux.

    Par contre si tu as un problème de requête ouvre un autre Post dans le forum Oracle si c'est une base de données Oracle. Car là on devient hors sujet.

    PS : pense à mettre ta requête entre balise code merci. Ca piquera moins les yeux

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Est-ce que vous l’avez testé dans talend ? Si oui vous avez fait comment ?

  11. #11
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Dans Talend :

    tOracleInput :
    - avec pour requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT table1.ida IDA, table1.idb IDB, table1.valeur1 VAL1, table2.valeur2 VAL2, table3.valeur3 VAL3
    FROM table1 LEFT OUTER JOIN table2
    ON table1.ida = table2.ida
    AND table1.idb = table2.idb
    LEFT OUTER JOIN table3
    ON table1.ida = table3.ida
    AND table1.idb = table3.idb;
    -> schéma :
    IDA Integer (NUMBER)
    IDB Integer (NUMBER)
    VAL1 String (VARCHAR2)
    VAL2 String (VARCHAR2)
    VAL3 String (VARCHAR2)

    et j'ai envoyé le tout dans tLogRow pour voire le rendu de la requête

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 213
    Points : 73
    Points
    73
    Par défaut
    et si on est dans une base MYSQL il me semble que les commande left and right join ne fonctionne pas? est ce vrai?

  13. #13
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Citation Envoyé par Elise49 Voir le message
    et si on est dans une base MYSQL il me semble que les commande left and right join ne fonctionne pas? est ce vrai?
    Nan c'est faux par contre on ne peut pas faire de full outer join, il faut l'émuler.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 213
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par jsd03 Voir le message
    Nan c'est faux par contre on ne peut pas faire de full outer join, il faut l'émuler.
    ah ok et donc si on veut faire un FULL outer on doit faire un right, un left , et un union des deux, plus ce quil y a en commun dans les deux tables??

  15. #15
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Voir le lien suivant pour plus d'information à ce sujet : http://mysql.developpez.com/sources/...ull-outer-join

  16. #16
    Membre à l'essai
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 14
    Points
    14
    Par défaut Et si les sources des données sont des fichiers CSV?
    Pour les jointures je suis aussi pour le faire en SQL quand c'est possible.

    Mais dans mon cas, les données viennent de deux fichiers CSV.

    Je fais une jointure sur deux clés, mais ce que je veux comme résultat c'est ce qui est dans le fichier a mais pas dans le b et ce qui est dans le fichier b mais pas dans le fichier a.


    Est ce quelqu'un a une idée?

  17. #17
    Membre à l'essai
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 14
    Points
    14
    Par défaut Full Outer Join trouvé
    Salut,

    J'ai trouvé une solution sur le forum de Talend pour faire un full outer joi.

    Voici le lien vers le post : http://www.talendforge.org/forum/viewtopic.php?pid=8873

    Et vers le print screen : http://www.talendforge.org/forum/pos...lename=job.JPG

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Comment réaliser un FULL OUTER JOIN sur 3 tables?
    Par jffiliatrault dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 01/04/2010, 03h22
  2. Réponses: 3
    Dernier message: 19/02/2008, 10h26
  3. [ORACLE 9i] Equivalent du Full Outer Join
    Par Worldofdada dans le forum Oracle
    Réponses: 10
    Dernier message: 02/11/2005, 14h56
  4. Remplacer FULL OUTER JOIN
    Par funrighd dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2004, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo