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 :

Requête avec des Join Externes


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Points : 44
    Points
    44
    Par défaut Requête avec des Join Externes
    Bonjour,

    Voici la requête que j'exécute dans mon tOracleInput :

    "
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT A_NUM, A_DATE 
        B_COMPTE, B_DATE
        C_CODE, C_SECTEUR
        D_ADRESSE, D_LOCALITE
        E_SOCIETE, E_ETABLISSEMENT
            FROM TABLE_A, TABLE_B, TABLE_C, TABLE_D, TABLE_E
                WHERE A_ID = B_A_ID
                AND A_C_ID = C_ID
                AND C_E_ID = E_ID
                AND C_D_ID = D_ID
                AND A_ID IN (001,002)
    "

    Ma sélection principale se fait sur la table TABLE_A, il se peut que certains champs (utilisé pour effectuer les jointures) soient vide.
    Par exemple :
    • A_ID est toujours renseigné, c'est la clé de TABLE_A

    • A_C_ID peut être vide

    • C_E_ID peut être vide

    • C_D_ID peut être vide

    La table TABLE_B contient de 1 à N ligne(s) correspondant à un enregistrement de la table TABLE_A.

    Mon objectif serait de retranscrire cette requête avec des jointures externes, afin de ne pas poser de problème pour la correspondance des champs.

    Merci pour votre aide!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Bonjour,

    Ta problématique ne concerne pas Talend, mais juste du sql. Du coup ce n'est peut-être pas le bon forum pour cette question.

    Ceci dit, il doit te falloir faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT A_NUM, A_DATE, B_COMPTE, B_DATE,
        C_CODE, C_SECTEUR,D_ADRESSE, D_LOCALITE,
        E_SOCIETE, E_ETABLISSEMENT
    FROM TABLE_A
        LEFT OUTER JOIN TABLE_B ON A_ID = B_A_ID
        LEFT OUTER JOIN TABLE C ON A_C_ID = C_ID
        LEFT OUTER JOIN TABLE E ON C_E_ID = E_ID
        LEFT OUTER JOIN TABLE D ON C_D_ID = D_ID
    WHERE 
        A_ID IN (001,002)
    Nicolas

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    Bonjour

    En fait je suis sous Oracle, cela se traduit donc par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT A_NUM, A_DATE, B_COMPTE, B_DATE,
        C_CODE, C_SECTEUR,D_ADRESSE, D_LOCALITE,
        E_SOCIETE, E_ETABLISSEMENT
            FROM TABLE_A, TABLE_B, TABLE_C, TABLE_D, TABLE_E
            WHERE A_ID = B_A_ID (+)
            AND A_C_ID = C_ID (+)
            AND C_E_ID = E_ID (+)
            AND C_D_ID = D_ID (+)
            AND A_ID IN (001,002)
    Mais en tout cas oui, c'était bien un problème de SQL et de jointure externe, et non propre à Talend. Dsl pour le post au mauvais endroit...
    Merci pour ta réponse en tout cas

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Avec plaisir

    (En fait, ma syntaxe avec les left outer join marche aussi sous oracle. C'est la syntaxe que tu utilises (avec les (+)) qui est spécifique à oracle et ne fonctionne donc pas avec les autres bases de données).

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

Discussions similaires

  1. [MySQL] Lire plusieurs tables avec des join ou requête à chaque fois à l'intérieur d'une boucle
    Par padre.cedano dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/01/2015, 09h44
  2. [AC-2003] Problème car trop de requêtes avec des jointures externes ?
    Par KriKri dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 13/08/2009, 18h49
  3. Une requête avec des jointures externes
    Par Sopra dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2009, 17h28
  4. [SQL] Requête dans une requête...avec des INNER JOIN!
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 06/04/2006, 08h26
  5. Requête avec NATURAL JOIN
    Par blids dans le forum SQL
    Réponses: 4
    Dernier message: 06/08/2004, 11h52

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