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

Requêtes et SQL. Discussion :

soucis avec des requetes "INNER JOIN" Imbriquées


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 30
    Points : 22
    Points
    22
    Par défaut soucis avec des requetes "INNER JOIN" Imbriquées
    Bonjour,

    J'ai un soucis avec deux inner join :

    Je fait une selection dans une table, ([tbl ApportCampagne]) dans laquelle j'ai des producteurs et des varietes qui sont indiqués par des numeros de matricules.

    Dans une autre table [tbl Producteur] j'ai la correspondance entre les matricules de producteur et de leur nom.

    Dans une troisieme table [tbl variete] j'ai la correspondance entre le numero de code de la variété et son nom .


    Mon but est de faire une requete qui selectionne le contenu de la [tbl apprt campagne] avec les noms réels des producteurs et des variétés.
    Je fait donc des INNER JOIN de la facon suivante.



    SELECT [tbl Apports Campagne].[lot]
    , [tbl Apports Campagne].[variete]
    , [tbl variete].[correspondance]
    , [tbl Apports Campagne].[date]
    , [tbl Producteurs].[N° Adh]
    , [tbl Producteurs].[Nom - Prénom]
    , [tbl Apports Campagne].[adherent]
    , [tbl Apports Campagne].[poidsentree]
    , [tbl Apports Campagne].[poidssortie]
    , [tbl Apports Campagne].[poidsbrut]
    , [tbl Apports Campagne].[calibre1total]
    , [tbl Apports Campagne].[calibre2total]
    , [tbl Apports Campagne].[calibre3total]
    , [tbl Apports Campagne].[poidsnettotal]
    , [tbl Apports Campagne].[dechet]
    , [tbl Apports Campagne].[pourcentageperte]
    FROM
    ([tbl Apports Campagne] INNER JOIN [tbl Producteurs]
    ON [tbl Producteurs].[NumBIS]=[tbl Apports Campagne].[adherent]) INNER JOIN [tbl variete]
    ON [tbl Apports Campagne].[variete]=[tbl variete].[code];
    Soucis, avec une telle requete, j'ai plus que 789 enregistrements dans la base !

    Alors que si je ne prend pas en compte le inner join pour la variété, j'en ai 3600 !
    FROM [tbl Producteurs] INNER JOIN [tbl Apports Campagne] ON [tbl Producteurs].[NumBIS]=[tbl Apports Campagne].[adherent];
    Merci par avance de votre aide précieuse !

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Points : 59
    Points
    59
    Par défaut
    bonjour

    pourquoi selectionne tu tous les champs de ta base 1 par 1

    il serai plus judicieux d'ecrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [tbl Producteurs] INNER JOIN [tbl Apports Campagne] ON [tbl Producteurs].[NumBIS]=[tbl Apports Campagne].[adherent];
    c'est déja plus court

    ensuite si tu retrouve que 789 enregistrements sur 3600 en faisant un INNER JOIN c'est tout simplement à cause de la jointure par défaut de ta relation. ta requete affichera que les enregistrements présents ds les 2 tables et non les enregistrements de la première table.
    En reglant ta jointure sur gauche, tu aura tous les enregistrements de la première table même si il n'y a pas de correspondance dans les autres tables

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    J'essaie ca !

    J'avoue pour le "*", mais j'ai réutilisé la selection automatique de ACCESS qui choisit les champs un par un

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Cela dis , avec un left JOIN, j'ai bien mes 3600 enregistrements, mais le champ variété est vide... il ne m'affiche pa plus les equivalence ...

    C'est possible de mettre deux INNER JOIN dans une requete , mais pas imbriqué ? parceque finalement ce que je faisais avant c'etait de comparer un producteur avec une variété ...

    [tbl1] INNER JOIN [tbl2] on [tbl1].Adherent = [tbl2].codeAdherent
    AND
    [tbl1] INNER JOIN [tbl3] on tbl1.Variete = [tbl3].CodeVariete
    Je suis pas sur de mon coup la ?
    ?

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Bon bah voila !!
    Problème résolu !
    Ma première requete fonctionnai parfaitement !
    Le soucis etait que les champs variete.code et le champ [tbl apportcampagne].variete etaient en format texte et sans doutes que dans une certains chiffres etaient rentrés avec un espace derrière ... ce qui fait que lors de l'inner join il n'y avait pas de caractère correspondant !

    J'ai repassé ces deux champs en numérique et tout est rentré dans l'ordre .

    Merci!

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Points : 59
    Points
    59
    Par défaut
    ca aura été ma premère aide utile sur ce forum ca me conforte dans mon apprentissage

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

Discussions similaires

  1. [Tableaux] souci avec des simples quotes
    Par Jean Fi dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 20h13
  2. probleme avec des requetes
    Par el_quincho dans le forum Access
    Réponses: 1
    Dernier message: 20/02/2006, 12h41
  3. Requete en INNER JOIN
    Par HULK dans le forum Langage SQL
    Réponses: 8
    Dernier message: 24/06/2005, 14h51
  4. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45

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