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

Oracle Discussion :

left join


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 220
    Par défaut left join
    bonjour je dois faire un left join en renseignant par un numéro d'identifiant mes deux tables. comment dois-je faire car moi je vais de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select distinct(essai.famille_id),essai.famille_nom,montant_total_famille
    from essai left outer join  vw_dwh_article_essai3 on essai.FAMILLE_ID=vw_dwh_article_essai3.famille_id 
    where  essai.ent_int_ident_id=8804 and vw_dwh_article_essai.ent_int_ident_id=8804
    mais il me retourne que les valeurs de la seconde table.

    et lorsque je passe par deux vue que j'ai créé et qui corresponde au résultat des deux tables mais pour le numéro demandé. le résultat est correcte.

    je ne vois pas pourquoi sa ne passe en attaquant directement les tables

    merci d'avance

  2. #2
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Tu peux ptet poster le create de tes vues ?

    Sinon

    Pour moi ta requête pose pb car d'une part tu veux
    prendre la table essai et seulement la correspondance
    dans vw_dwh_article_essai3 s'il elle existe (LEFT)
    Mais ... tu imposes 2 conditions, une sur Essai ok !

    et l'autre condition sur la table vw_dwh_article_essai dont on récupère
    les infos que s'il y a correspondance grâce au LEFT
    (c'est là le pb !)


    En clair et vu ta requête et les conditions demandées, le LEFT
    n'a peut-être pas lieu d'être

    Maintenent si tu veux et les enregistrements avec tes conditions +
    tout ceux d'essai même si pas de correspondance avec ceux de vw_dwh_article_essai

    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select distinct(essai.famille_id),essai.famille_nom,montant_total_famille 
    from essai left outer join  vw_dwh_article_essai3 on essai.FAMILLE_ID=vw_dwh_article_essai3.famille_id 
    where  essai.ent_int_ident_id=8804 and (vw_dwh_article_essai.ent_int_ident_id=8804 or
    vw_dwh_article_essai.ent_int_ident_id is null)
    On se comprend ?

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 220
    Par défaut
    dans ma table essai j'ai environ 47 occurences si je met en parametre ent_int_ident_id=8804

    dans ma vue vw_dwh_article_essai j'ai 16 occurences si je met en parametre ent_int_ident_id=8804

    donc je voudrais que ca fasse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    résultat de l'opération 
    essai .famille_id                      montant_totale_famille
    1                                                    5543
    2                                                    6585
    3                                                      -
    4                                                     65666
    ...
    47                                                       -
    le "-" dans le montant étant vide sachant qu'il n'y a pas de correspondance dans la vue vw_dwh_article_essai

    j'ai ce résultat la si je passe par deux vue qui retourne le résultat pour l'identifiant 8004 mais moi il faudrais que je puisse choisir cette identifiant

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    1 : pourquoi un DISTINCT ?
    2 : tu peux rajouter la condition sur ident_id dans la jointure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT essai.famille_id, essai.famille_nom, art.montant_total_famille 
    FROM essai LEFT OUTER JOIN vw_dwh_article_essai3 art
    	ON essai.famille_id = art.famille_id 
    	AND essai.ent_int_ident_id = art.ent_int_ident_id
    WHERE  essai.ent_int_ident_id=8804

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 220
    Par défaut
    merci ca passe nikel
    j'avais déjà tenté un truc dans se genre mais j'avais mis un and au lieu du where

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

Discussions similaires

  1. count() dans *plusieurs* LEFT JOIN
    Par silver_dragoon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/06/2004, 17h20
  2. LEFT JOIN avec Oracle 8i ne va pas... doit utiliser (+)
    Par loikiloik dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/04/2004, 16h38
  3. Interbase et left join
    Par Zog dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/03/2004, 08h55
  4. Non coincident MySQL (Left Join)
    Par Remiguel dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/11/2003, 21h25
  5. Export d'une vue avec LEFT JOIN
    Par schnourf dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/05/2003, 13h57

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